<?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>34479</bug_id>
          
          <creation_ts>2010-02-02 08:19:09 -0800</creation_ts>
          <short_desc>[Qt] Canvas and CSS: blur option in shadow not working</short_desc>
          <delta_ts>2012-07-11 14:13:18 -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>
          <dependson>19728</dependson>
    
    <dependson>43952</dependson>
    
    <dependson>43980</dependson>
    
    <dependson>44006</dependson>
    
    <dependson>44015</dependson>
    
    <dependson>44025</dependson>
    
    <dependson>44031</dependson>
    
    <dependson>44091</dependson>
    
    <dependson>44094</dependson>
    
    <dependson>44222</dependson>
    
    <dependson>44369</dependson>
    
    <dependson>44380</dependson>
    
    <dependson>44464</dependson>
    
    <dependson>44488</dependson>
    
    <dependson>46327</dependson>
    
    <dependson>48223</dependson>
    
    <dependson>49490</dependson>
    
    <dependson>49491</dependson>
    
    <dependson>49878</dependson>
    
    <dependson>50104</dependson>
    
    <dependson>51161</dependson>
          <blocked>35808</blocked>
    
    <blocked>50849</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Ariya Hidayat">ariya.hidayat</assigned_to>
          <cc>abarth</cc>
    
    <cc>ariya.hidayat</cc>
    
    <cc>cshu</cc>
    
    <cc>eric</cc>
    
    <cc>evandromyller</cc>
    
    <cc>hongqn</cc>
    
    <cc>j</cc>
    
    <cc>kling</cc>
    
    <cc>krit</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>manuel.lazzari</cc>
    
    <cc>nancy.piedra</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186970</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-02-02 08:19:09 -0800</bug_when>
    <thetext>QtLauncher fails the following test case but Safari works fine.
http://waplabdc.nokia-boston.com/browser/users/ligman/canvas tests/shadow/shadow_offsetX.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197286</commentid>
    <comment_count>1</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-03-08 13:30:16 -0800</bug_when>
    <thetext>LayoutTests/fast/canvas/canvas-incremental-repaint.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198089</commentid>
    <comment_count>2</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-03-10 06:40:21 -0800</bug_when>
    <thetext>
Please follow the QtWebKit bug reporting guidelines when reporting bugs.

See http://trac.webkit.org/wiki/QtWebKitBugs

Specifically:

  - The &apos;QtWebKit&apos; component should only be used for bugs/features in the
    public QtWebKit API layer, not to signify that the bug is specific to
    the Qt port of WebKit

      http://trac.webkit.org/wiki/QtWebKitBugs#Component

  - Add the keyword &apos;Qt&apos; to signal that it&apos;s a Qt-related bug

      http://trac.webkit.org/wiki/QtWebKitBugs#Keywords</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198299</commentid>
    <comment_count>3</comment_count>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-03-10 13:27:18 -0800</bug_when>
    <thetext>Copy some comments about blur and shadow from bug 34477:
1. By the way, today, I found the similar issue with “blur”. The “blur” is
one property of “shadow”. Currently, “shadow” is implemented in
GraphicsContextQt.cpp. Since, everything (text, image, line, rect, etc) can
have “shadow”, we draw “shadow” for each one, but we didn’t apply the “blur”
pattern for “shadow” now. I am not sure, GraphicsContextQt should draw the
“shadow” or let lower level like QBrush to draw “shadow”. Anyway, currently I
find it is difficult to draw a “blur” “shadow” now in GraphicsContextQt.
2. Does QT have a &quot;blur&quot; or &quot;shadow&quot; function?
In this case, &quot;canvas&quot; can draw a image, rect, line, text, etc. And, each of
them can have a &quot;shadow&quot; and &quot;shadow&quot; can be &quot;blur&quot;.
I searched in QT, I found QGraphicsBlurEffect and QGraphicsDropShadowEffect
(QGraphicsEffect)looks for this purpose. But they suppose to be taken by
QGraphicsItem, it looks heavy and not for this purpose. 
Not sure, QT has function for our purpose.
3. I found class &quot;QPixmapDropShadowFilter&quot; pretty much meet our requirement for
shadow and blur, but unfortunately it is private class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207247</commentid>
    <comment_count>4</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-04-01 10:48:46 -0700</bug_when>
    <thetext>This issue depends on the support from Qt.
I found one open bug in Qt that requires support for text shadow:
http://bugreports.qt.nokia.com/browse/QTBUG-5087
Set this webkit bug to resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213323</commentid>
    <comment_count>5</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-04-16 11:36:17 -0700</bug_when>
    <thetext>There is a possibility to implement blur in qtwebkit. So we reopen this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251370</commentid>
    <comment_count>6</comment_count>
      <attachid>61551</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-07-14 12:52:52 -0700</bug_when>
    <thetext>Created attachment 61551
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251371</commentid>
    <comment_count>7</comment_count>
      <attachid>61551</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-07-14 12:57:19 -0700</bug_when>
    <thetext>Comment on attachment 61551
patch

This is mistake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263908</commentid>
    <comment_count>8</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-12 12:19:09 -0700</bug_when>
    <thetext>Add and assign to myself.

Chang Su: feel free to take it over if you are working on this again :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263934</commentid>
    <comment_count>9</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-12 13:20:05 -0700</bug_when>
    <thetext>I am afraid the current situation with shadow painting in GraphicsContextQt is a bit of a mess. I will start by posting patches which cleans up and refactors the code. Also, hopefully one small patch at a time is easier to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263942</commentid>
    <comment_count>10</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-12 13:29:52 -0700</bug_when>
    <thetext>Same problem with CSS, adjust the title to point this out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264309</commentid>
    <comment_count>11</comment_count>
      <attachid>64327</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 05:44:21 -0700</bug_when>
    <thetext>Created attachment 64327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264334</commentid>
    <comment_count>12</comment_count>
      <attachid>64327</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-13 06:37:22 -0700</bug_when>
    <thetext>Comment on attachment 64327
Patch

Nice cleanup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264339</commentid>
    <comment_count>13</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-08-13 06:49:14 -0700</bug_when>
    <thetext>Awesome! Simon, can you cherry-pick this to 2.1 once it&apos;s in? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264343</commentid>
    <comment_count>14</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-08-13 06:52:56 -0700</bug_when>
    <thetext>Btw, this patch must make some philip&apos;s tests work (LayoutTests/canvas/philip/tests). Can you identify them and remove them from skip list?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264345</commentid>
    <comment_count>15</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 06:58:51 -0700</bug_when>
    <thetext>&gt; Btw, this patch must make some philip&apos;s tests
&gt; work(LayoutTests/canvas/philip/tests). 
&gt; Can you identify them and remove them from skip list?

Of course, once I&apos;m done with it :)
The first patch is only cleanup and does not add anything yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264353</commentid>
    <comment_count>16</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-08-13 07:27:59 -0700</bug_when>
    <thetext>My bad, I didn&apos;t realize this is the 1st patch. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264396</commentid>
    <comment_count>17</comment_count>
      <attachid>64350</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 09:04:44 -0700</bug_when>
    <thetext>Created attachment 64350
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264397</commentid>
    <comment_count>18</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 09:05:48 -0700</bug_when>
    <thetext>Hmm, accidently obsolete patch 1 :(

For reference, it was already r+ by hausmann.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264428</commentid>
    <comment_count>19</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 10:26:20 -0700</bug_when>
    <thetext>Patch 1: Manually committed r65331: http://trac.webkit.org/changeset/65331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264435</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-13 10:49:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65331 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264446</commentid>
    <comment_count>21</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 11:22:07 -0700</bug_when>
    <thetext>Few tests I missed in Patch 1:

canvas/philip/tests/2d.shadow.enable.blur.html
canvas/philip/tests/2d.shadow.offset.positiveX.html
canvas/philip/tests/2d.shadow.offset.positiveY.html
fast/canvas/canvas-shadow.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264630</commentid>
    <comment_count>22</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 22:57:41 -0700</bug_when>
    <thetext>Instead of polluting this bug, I&apos;ll create new bug entries for the small patchsets and make this one as a master bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267614</commentid>
    <comment_count>23</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-21 16:54:45 -0700</bug_when>
    <thetext>*** Bug 42156 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325021</commentid>
    <comment_count>24</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-12-21 08:32:12 -0800</bug_when>
    <thetext>*** Bug 49131 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667042</commentid>
    <comment_count>25</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-11 14:13:18 -0700</bug_when>
    <thetext>Time to close this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>61551</attachid>
            <date>2010-07-14 12:52:52 -0700</date>
            <delta_ts>2010-07-14 12:57:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug38400_4.patch</filename>
            <type>text/plain</type>
            <size>6840</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzMxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDctMTQgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsdXJlIG9uIGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90
ZXN0cy8yZC5zaGFkb3cuYWxwaGEuNS5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zODQwMAorCisgICAgICAgIEZpbGxSZWN0IHdpdGggc2hhZG93
IG5lZWQgdGFrZSBhbHBoYSBpbmZvcm1hdGlvbiBmcm9tIGZpbGxzdHlsZQorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisKIDIwMTAtMDctMTQgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI2MzMwNS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NDb250ZXh0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCShyZXZpc2lvbiA2Mjk0NSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03MTIsMjkgKzcxMiw2NSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qo
Y29uc3QgRmxvCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgaWYgKCEobV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuIHx8IG1fY29tbW9uLT5zdGF0
ZS5maWxsR3JhZGllbnQgfHwgZmlsbENvbG9yKCkuYWxwaGEoKSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIFFQYWludGVyKiBwID0gbV9kYXRhLT5wKCk7CisgICAgRmxvYXRSZWN0IG5vcm1hbGl6
ZWRSZWN0ID0gcmVjdC5ub3JtYWxpemVkKCk7CisKKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsK
KyAgICBmbG9hdCBzaGFkb3dCbHVyOworICAgIENvbG9yIHNoYWRvd0NvbG9yOworICAgIEZsb2F0
UmVjdCBkZXN0UmVjdDsKKyAgICBRSW1hZ2Ugc2hhZG93SW1hZ2Uocm91bmRlZEludFNpemUobm9y
bWFsaXplZFJlY3Quc2l6ZSgpKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQp
OworICAgIFFQYWludGVyIHBTaGFkb3coJnNoYWRvd0ltYWdlKTsKKyAgICBib29sIGhhc1NoYWRv
dyA9IGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CisKKyAg
ICBpZiAoaGFzU2hhZG93KSB7CisgICAgICAgIGRlc3RSZWN0ID0gbm9ybWFsaXplZFJlY3Q7Cisg
ICAgICAgIGRlc3RSZWN0Lm1vdmUoc2hhZG93U2l6ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhlaWdo
dCgpKTsKKworICAgICAgICBwU2hhZG93LnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgICAgIHBTaGFkb3cuZmlsbFJlY3Qoc2hhZG93SW1h
Z2UucmVjdCgpLCBzaGFkb3dDb2xvcik7CisgICAgICAgIHBTaGFkb3cuc2V0Q29tcG9zaXRpb25N
b2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25Jbik7CisgICAgfQorCisg
ICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybikgeworICAgICAgICBBZmZpbmVUcmFu
c2Zvcm0gYWZmaW5lOworICAgICAgICBGbG9hdFJlY3QgcmVjdE0ocmVjdCk7CisgICAgICAgIFFC
cnVzaCBicnVzaChtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0
dGVybihhZmZpbmUpKTsKKyAgICAgICAgUVBpeG1hcCogaW1hZ2UgPSBtX2NvbW1vbi0+c3RhdGUu
ZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwog
Ci0gICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybiB8fCBtX2NvbW1vbi0+c3RhdGUu
ZmlsbEdyYWRpZW50IHx8IGZpbGxDb2xvcigpLmFscGhhKCkpIHsKLSAgICAgICAgaWYgKG1fY29t
bW9uLT5zdGF0ZS5zaGFkb3dDb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgICAgICBkcmF3Qm9yZGVy
bGVzc1JlY3RTaGFkb3codGhpcywgcCwgcmVjdCk7Ci0gICAgICAgIGlmIChtX2NvbW1vbi0+c3Rh
dGUuZmlsbFBhdHRlcm4pIHsKLSAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBhZmZpbmU7Ci0g
ICAgICAgICAgICBGbG9hdFJlY3QgcmVjdE0ocmVjdCk7Ci0gICAgICAgICAgICBRQnJ1c2ggYnJ1
c2gobV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oYWZm
aW5lKSk7Ci0gICAgICAgICAgICBRUGl4bWFwKiBpbWFnZSA9IG1fY29tbW9uLT5zdGF0ZS5maWxs
UGF0dGVybi0+dGlsZUltYWdlKCktPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0KLSAg
ICAgICAgICAgIGRyYXdSZXBlYXRQYXR0ZXJuKHAsIGltYWdlLCByZWN0LCBtX2NvbW1vbi0+c3Rh
dGUuZmlsbFBhdHRlcm4tPnJlcGVhdFgoKSwgbV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLT5y
ZXBlYXRZKCkpOwotICAgICAgICB9IGVsc2UgaWYgKG1fY29tbW9uLT5zdGF0ZS5maWxsR3JhZGll
bnQpIHsKLSAgICAgICAgICAgIFFCcnVzaCBicnVzaCgqbV9jb21tb24tPnN0YXRlLmZpbGxHcmFk
aWVudC0+cGxhdGZvcm1HcmFkaWVudCgpKTsKLSAgICAgICAgICAgIGJydXNoLnNldFRyYW5zZm9y
bShtX2NvbW1vbi0+c3RhdGUuZmlsbEdyYWRpZW50LT5ncmFkaWVudFNwYWNlVHJhbnNmb3JtKCkp
OwotICAgICAgICAgICAgcC0+ZmlsbFJlY3QocmVjdCwgYnJ1c2gpOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgaWYgKGZpbGxDb2xvcigpLmFscGhhKCkpCi0gICAgICAgICAgICAgICAg
cC0+ZmlsbFJlY3QocmVjdCwgcC0+YnJ1c2goKSk7CisgICAgICAgIC8vIERyYXcgc2hhZG93Cisg
ICAgICAgIGlmIChoYXNTaGFkb3cpIHsKKyAgICAgICAgICAgIGRyYXdSZXBlYXRQYXR0ZXJuKCZw
U2hhZG93LCBpbWFnZSwgRmxvYXRSZWN0KHN0YXRpY19jYXN0PFFSZWN0Rj4oc2hhZG93SW1hZ2Uu
cmVjdCgpKSksIG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0WCgpLCBtX2NvbW1v
bi0+c3RhdGUuZmlsbFBhdHRlcm4tPnJlcGVhdFkoKSk7CisgICAgICAgICAgICBwU2hhZG93LmVu
ZCgpOworICAgICAgICAgICAgcC0+ZHJhd0ltYWdlKGRlc3RSZWN0LCBzaGFkb3dJbWFnZSwgc2hh
ZG93SW1hZ2UucmVjdCgpKTsKKyAgICAgICAgfQorICAgICAgICBkcmF3UmVwZWF0UGF0dGVybihw
LCBpbWFnZSwgbm9ybWFsaXplZFJlY3QsIG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi0+cmVw
ZWF0WCgpLCBtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4tPnJlcGVhdFkoKSk7CisgICAgfSBl
bHNlIGlmIChtX2NvbW1vbi0+c3RhdGUuZmlsbEdyYWRpZW50KSB7CisgICAgICAgIFFCcnVzaCBi
cnVzaCgqbV9jb21tb24tPnN0YXRlLmZpbGxHcmFkaWVudC0+cGxhdGZvcm1HcmFkaWVudCgpKTsK
KyAgICAgICAgYnJ1c2guc2V0VHJhbnNmb3JtKG1fY29tbW9uLT5zdGF0ZS5maWxsR3JhZGllbnQt
PmdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oKSk7CisKKyAgICAgICAgLy8gRHJhdyBzaGFkb3cKKyAg
ICAgICAgaWYgKGhhc1NoYWRvdykgeworICAgICAgICAgICAgcFNoYWRvdy5maWxsUmVjdChzaGFk
b3dJbWFnZS5yZWN0KCksIGJydXNoKTsKKyAgICAgICAgICAgIHBTaGFkb3cuZW5kKCk7CisgICAg
ICAgICAgICBwLT5kcmF3SW1hZ2UoZGVzdFJlY3QsIHNoYWRvd0ltYWdlLCBzaGFkb3dJbWFnZS5y
ZWN0KCkpOwogICAgICAgICB9CisgICAgICAgIHAtPmZpbGxSZWN0KG5vcm1hbGl6ZWRSZWN0LCBi
cnVzaCk7CisgICAgfSBlbHNlIGlmIChmaWxsQ29sb3IoKS5hbHBoYSgpKSB7CisgICAgICAgIC8v
IERyYXcgc2hhZG93CisgICAgICAgIGlmIChoYXNTaGFkb3cpIHsKKyAgICAgICAgICAgIHBTaGFk
b3cuZmlsbFJlY3Qoc2hhZG93SW1hZ2UucmVjdCgpLCBwLT5icnVzaCgpKTsKKyAgICAgICAgICAg
IHBTaGFkb3cuZW5kKCk7CisgICAgICAgICAgICBwLT5kcmF3SW1hZ2UoZGVzdFJlY3QsIHNoYWRv
d0ltYWdlLCBzaGFkb3dJbWFnZS5yZWN0KCkpOworICAgICAgICB9CisgICAgICAgIHAtPmZpbGxS
ZWN0KG5vcm1hbGl6ZWRSZWN0LCBwLT5icnVzaCgpKTsKICAgICB9CiB9CiAKKwogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3Im
IGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSB8fCAhY29sb3IuaXNWYWxpZCgpKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjMzMTQpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAx
MC0wNy0xNCAgUWkgWmhhbmcgIDxxaS4yLnpoYW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEZhaWx1cmUgb24gaHR0cDov
L3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rlc3RzLzJkLnNoYWRvdy5hbHBo
YS41Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM4NDAwCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmb2xsb3dpbmcgdGVzdCBjYXNlIGZyb20gU2tp
cHBlZDoKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuYWxwaGEuNS5odG1s
CisgICAgICAgIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmdyYWRpZW50LmFscGhhLmh0
bWwKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuZ3JhZGllbnQudHJhbnNw
YXJlbnQuMS5odG1sCisgICAgICAgIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmltYWdl
LnNjYWxlLmh0bWwKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cucGF0dGVy
bi5hbHBoYS5odG1sCisgICAgICAgIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRl
cm4udHJhbnNwYXJlbnQuMS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgor
CiAyMDEwLTA3LTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjMzMDUuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDYyOTQ1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTMwNSwxOCArNTMwNSwxMiBAQCBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnBhdHRlcm4uaW1hZ2UubnVsbC5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
aW1hZ2Uuc3RyaW5nLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS51
bmRlZmluZWQuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuYWxwaGEuNS5odG1s
CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5jYW52YXMuYWxwaGEuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuY2FudmFzLmJhc2ljLmh0bWwKIGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQuc2hhZG93LmNhbnZhcy50cmFuc3BhcmVudC4yLmh0bWwKLWNhbnZhcy9waGlsaXAv
dGVzdHMvMmQuc2hhZG93LmdyYWRpZW50LmFscGhhLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMv
MmQuc2hhZG93LmdyYWRpZW50LnRyYW5zcGFyZW50LjEuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5zaGFkb3cuaW1hZ2UuYWxwaGEuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFk
b3cuaW1hZ2Uuc2NhbGUuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuaW1hZ2Uu
dHJhbnNwYXJlbnQuMS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5pbWFnZS50
cmFuc3BhcmVudC4yLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4u
YWxwaGEuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3Bh
cmVudC4xLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnRyYW5zZm9ybS4yLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLmJvdHRvbS5odG1s
CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5iYXNlbGluZS5oYW5naW5nLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64327</attachid>
            <date>2010-08-13 05:44:21 -0700</date>
            <delta_ts>2010-08-13 09:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34479-20100813054303.patch</filename>
            <type>text/plain</type>
            <size>14991</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2E2Yzk2NWU2N2IzN2Y2MDhmNDg3OGJkODAyZmM4N2VmYTBiYWU5NC4uOWEwNjYzMmVlYmI2YmI1
NmRiYjI0ZTJmYTE3OTRhMmRhMTFkNzM3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wOC0xMyAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBDYW52YXMgYW5kIENTUzogYmx1ciBvcHRpb24g
aW4gc2hhZG93IG5vdCB3b3JraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDQ3OQorCisgICAgICAgIFBhdGNoIDE6IFJlZmFjdG9yIHNoYWRvdyBz
dGF0ZXMgaGFuZGxpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGlj
c0NvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGU6Oik6IEFkZGVkIHNoYWRvdyBzdGF0ZXMgYXMKKyAgICAgICAgbWVtYmVyIHZhcmlh
Ymxlcy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6
aGFzU2hhZG93KTogQ29udmVuaWVudAorICAgICAgICBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVy
IHRoZXJlIGlzIHNoYWRvdyBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRQbGF0Zm9ybVByaXZhdGU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KTogVXNlIHNoYWRvdyBzdGF0
ZXMgaW5zdGVhZCBvZgorICAgICAgICBjYWxsaW5nIGdldFNoYWRvdy4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKTogZGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOiBSZW1vdmVzIHRoZSB1c2Ugb2YgaGVscGVyIGZ1
bmN0aW9uCisgICAgICAgIGRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyBhcyB0aGUgY29kZSBhbHJl
YWR5IGJlY29tZXMgYSBsb3Qgc2ltcGxlci4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJvdW5kZWRSZWN0KTogUmVtb3ZlcyB0aGUgdXNlIG9mIGhlbHBlcgorICAgICAg
ICBmdW5jdGlvbiBkcmF3RmlsbGVkU2hhZG93UGF0aCBhcyB0aGUgY29kZSBhbHJlYWR5IGJlY29t
ZXMgYSBsb3Qgc2ltcGxlci4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaGFkb3cpOiBTdG9yZSBzaGFkb3cgc3RhdGVzCisgICAgICAgIGFuZCBmaW5kIG91
dCB0aGUgc2hhZG93IHR5cGUgKGNvbXBsZXhpdHkpIGZvciBmdXR1cmUgdXNlLgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KTogUmVzZXQgc2hh
ZG93IHN0YXRlcy4KKwogMjAxMC0wOC0xMiAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCmluZGV4IGNjMzMxYmM4
M2MxZTg2ZDlmNWQwODcyMDhkMDdkYmU2Mzc4Yzc5ZmIuLmE0MDkzMjhjNWEzNzhiMDM0YzUyNGQ1
OTIxODIxMDY1MmM4NjFkYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCkBAIC0xOTksNiArMTk5LDIxIEBAIHB1YmxpYzoKICAg
ICAvLyBPbmx5IHVzZWQgYnkgU1ZHIGZvciBub3cuCiAgICAgUVBhaW50ZXJQYXRoIGN1cnJlbnRQ
YXRoOwogCisgICAgZW51bSB7CisgICAgICAgIE5vU2hhZG93LAorICAgICAgICBPcGFxdWVTb2xp
ZFNoYWRvdywKKyAgICAgICAgQWxwaGFTb2xpZFNoYWRvdywKKyAgICAgICAgQmx1clNoYWRvdwor
ICAgIH0gc2hhZG93VHlwZTsKKyAgICBRQ29sb3Igc2hhZG93Q29sb3I7CisgICAgaW50IHNoYWRv
d0JsdXJSYWRpdXM7CisgICAgUVBvaW50RiBzaGFkb3dPZmZzZXQ7CisKKyAgICBib29sIGhhc1No
YWRvdygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc2hhZG93VHlwZSAhPSBOb1NoYWRv
dzsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgUVBhaW50ZXIqIHBhaW50ZXI7CiB9OwpAQCAtMjIy
LDYgKzIzNyw5IEBAIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250
ZXh0UGxhdGZvcm1Qcml2YXRlKFFQYWludGVyKiBwKQogICAgICAgICBwYWludGVyLT5zZXRSZW5k
ZXJIaW50KFFQYWludGVyOjpTbW9vdGhQaXhtYXBUcmFuc2Zvcm0sIHRydWUpOwogICAgIH0gZWxz
ZQogICAgICAgICBhbnRpQWxpYXNpbmdGb3JSZWN0c0FuZExpbmVzID0gZmFsc2U7CisKKyAgICBz
aGFkb3dUeXBlID0gTm9TaGFkb3c7CisgICAgc2hhZG93Qmx1clJhZGl1cyA9IDA7CiB9CiAKIEdy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZSgpCkBAIC0yOTIsMTYgKzMxMCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1Jl
Y3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBjb25zdCBib29sIGFudGlBbGlhcyA9IHAtPnRl
c3RSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcpOwogICAgIHAtPnNldFJlbmRlckhp
bnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZywgbV9kYXRhLT5hbnRpQWxpYXNpbmdGb3JSZWN0c0Fu
ZExpbmVzKTsKIAotICAgIGlmIChtX2NvbW1vbi0+c3RhdGUuc2hhZG93Q29sb3IuaXNWYWxpZCgp
KSB7Ci0gICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwotICAgICAgICBmbG9hdCBzaGFkb3dC
bHVyOwotICAgICAgICBDb2xvciBzaGFkb3dDb2xvcjsKLSAgICAgICAgaWYgKGdldFNoYWRvdyhz
aGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKLSAgICAgICAgICAgIEludFJl
Y3Qgc2hhZG93UmVjdCA9IHJlY3Q7Ci0gICAgICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93
U2l6ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhlaWdodCgpKTsKLSAgICAgICAgICAgIHNoYWRvd1Jl
Y3QuaW5mbGF0ZShzdGF0aWNfY2FzdDxpbnQ+KHAtPnBlbigpLndpZHRoRigpKSk7Ci0gICAgICAg
ICAgICBwLT5maWxsUmVjdChzaGFkb3dSZWN0LCBRQ29sb3Ioc2hhZG93Q29sb3IpKTsKLSAgICAg
ICAgfQorICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7CisgICAgICAgIEludFJlY3Qgc2hh
ZG93UmVjdCA9IHJlY3Q7CisgICAgICAgIHNoYWRvd1JlY3QubW92ZShtX2RhdGEtPnNoYWRvd09m
ZnNldC54KCksIG1fZGF0YS0+c2hhZG93T2Zmc2V0LnkoKSk7CisgICAgICAgIHNoYWRvd1JlY3Qu
aW5mbGF0ZShzdGF0aWNfY2FzdDxpbnQ+KHAtPnBlbigpLndpZHRoRigpKSk7CisgICAgICAgIHAt
PmZpbGxSZWN0KHNoYWRvd1JlY3QsIG1fZGF0YS0+c2hhZG93Q29sb3IpOwogICAgIH0KIAogICAg
IHAtPmRyYXdSZWN0KHJlY3QpOwpAQCAtMzMxLDE1ICszNDQsMTQgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdMaW5lKGNvbnN0IEludFBvaW50JiBwb2ludDEsIGNvbnN0IEludFBvaW50JiBw
b2ludDIpCiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCBtX2Rh
dGEtPmFudGlBbGlhc2luZ0ZvclJlY3RzQW5kTGluZXMpOwogICAgIGFkanVzdExpbmVUb1BpeGVs
Qm91bmRhcmllcyhwMSwgcDIsIHdpZHRoLCBzdHlsZSk7CiAKLSAgICBGbG9hdFNpemUgc2hhZG93
U2l6ZTsKLSAgICBmbG9hdCBzaGFkb3dCbHVyOwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotICAg
IGlmICh0ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZpbGwgJiYgZ2V0U2hhZG93KHNoYWRvd1Np
emUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewotICAgICAgICBwLT5zYXZlKCk7Ci0gICAg
ICAgIHAtPnRyYW5zbGF0ZShzaGFkb3dTaXplLndpZHRoKCksIHNoYWRvd1NpemUuaGVpZ2h0KCkp
OwotICAgICAgICBwLT5zZXRQZW4oc2hhZG93Q29sb3IpOwotICAgICAgICBwLT5kcmF3TGluZShw
MSwgcDIpOwotICAgICAgICBwLT5yZXN0b3JlKCk7CisgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93
KCkpIHsKKyAgICAgICAgaWYgKHRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCkgeworICAg
ICAgICAgICAgcC0+c2F2ZSgpOworICAgICAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hh
ZG93T2Zmc2V0KTsKKyAgICAgICAgICAgIHAtPnNldFBlbihtX2RhdGEtPnNoYWRvd0NvbG9yKTsK
KyAgICAgICAgICAgIHAtPmRyYXdMaW5lKHAxLCBwMik7CisgICAgICAgICAgICBwLT5yZXN0b3Jl
KCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpbnQgcGF0V2lkdGggPSAwOwpAQCAtNDMzLDE2
ICs0NDUsMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUFyYyhjb25zdCBJbnRSZWN0
JiByZWN0LCBpbnQgc3RhcnRBbmdsZSwgaW50IGFuZ2xlU3AKICAgICBjb25zdCBib29sIGFudGlB
bGlhcyA9IHAtPnRlc3RSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcpOwogICAgIHAt
PnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZywgdHJ1ZSk7CiAKLSAgICBGbG9h
dFNpemUgc2hhZG93U2l6ZTsKLSAgICBmbG9hdCBzaGFkb3dCbHVyOwotICAgIENvbG9yIHNoYWRv
d0NvbG9yOwogICAgIHN0YXJ0QW5nbGUgKj0gMTY7CiAgICAgYW5nbGVTcGFuICo9IDE2OwotICAg
IGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CisK
KyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewogICAgICAgICBwLT5zYXZlKCk7Ci0gICAg
ICAgIHAtPnRyYW5zbGF0ZShzaGFkb3dTaXplLndpZHRoKCksIHNoYWRvd1NpemUuaGVpZ2h0KCkp
OworICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOwogICAgICAgICBR
UGVuIHBlbihwLT5wZW4oKSk7Ci0gICAgICAgIHBlbi5zZXRDb2xvcihzaGFkb3dDb2xvcik7Cisg
ICAgICAgIHBlbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvd0NvbG9yKTsKICAgICAgICAgcC0+c2V0
UGVuKHBlbik7CiAgICAgICAgIHAtPmRyYXdBcmMocmVjdCwgc3RhcnRBbmdsZSwgYW5nbGVTcGFu
KTsKICAgICAgICAgcC0+cmVzdG9yZSgpOwpAQCAtNDY4LDE3ICs0NzgsMTQgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKHNpemVfdCBucG9pbnRzLCBjb25zdCBGbG9h
dFBvaW50KiBwb2ludHMKICAgICBRUGFpbnRlciogcCA9IG1fZGF0YS0+cCgpOwogICAgIHAtPnNh
dmUoKTsKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcsIHNob3Vs
ZEFudGlhbGlhcyk7Ci0gICAgRmxvYXRTaXplIHNoYWRvd1NpemU7Ci0gICAgZmxvYXQgc2hhZG93
Qmx1cjsKLSAgICBDb2xvciBzaGFkb3dDb2xvcjsKLSAgICBpZiAoZ2V0U2hhZG93KHNoYWRvd1Np
emUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgeworICAgIGlmIChtX2RhdGEtPmhhc1NoYWRv
dygpKSB7CiAgICAgICAgIHAtPnNhdmUoKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKHNoYWRvd1Np
emUud2lkdGgoKSwgc2hhZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHAtPnRyYW5zbGF0ZSht
X2RhdGEtPnNoYWRvd09mZnNldCk7CiAgICAgICAgIGlmIChwLT5icnVzaCgpLnN0eWxlKCkgIT0g
UXQ6Ok5vQnJ1c2gpCi0gICAgICAgICAgICBwLT5zZXRCcnVzaChRQnJ1c2goc2hhZG93Q29sb3Ip
KTsKKyAgICAgICAgICAgIHAtPnNldEJydXNoKFFCcnVzaChtX2RhdGEtPnNoYWRvd0NvbG9yKSk7
CiAgICAgICAgIFFQZW4gcGVuKHAtPnBlbigpKTsKICAgICAgICAgaWYgKHBlbi5zdHlsZSgpICE9
IFF0OjpOb1BlbikgewotICAgICAgICAgICAgcGVuLnNldENvbG9yKHNoYWRvd0NvbG9yKTsKKyAg
ICAgICAgICAgIHBlbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvd0NvbG9yKTsKICAgICAgICAgICAg
IHAtPnNldFBlbihwZW4pOwogICAgICAgICB9CiAgICAgICAgIHAtPmRyYXdDb252ZXhQb2x5Z29u
KHBvbHlnb24pOwpAQCAtNTEyLDE4ICs1MTksNiBAQCBRUGVuIEdyYXBoaWNzQ29udGV4dDo6cGVu
KCkKICAgICByZXR1cm4gcC0+cGVuKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGlubGluZSBkcmF3Rmls
bGVkU2hhZG93UGF0aChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25z
dCBRUGFpbnRlclBhdGgmIHBhdGgpCi17Ci0gICAgRmxvYXRTaXplIHNoYWRvd1NpemU7Ci0gICAg
ZmxvYXQgc2hhZG93Qmx1cjsKLSAgICBDb2xvciBzaGFkb3dDb2xvcjsKLSAgICBpZiAoY29udGV4
dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewotICAg
ICAgICBwLT50cmFuc2xhdGUoc2hhZG93U2l6ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhlaWdodCgp
KTsKLSAgICAgICAgcC0+ZmlsbFBhdGgocGF0aCwgUUJydXNoKHNoYWRvd0NvbG9yKSk7Ci0gICAg
ICAgIHAtPnRyYW5zbGF0ZSgtc2hhZG93U2l6ZS53aWR0aCgpLCAtc2hhZG93U2l6ZS5oZWlnaHQo
KSk7Ci0gICAgfQotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgoKQogewogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCkBAIC01MzMsNyArNTI4LDExIEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpmaWxsUGF0aCgpCiAgICAgUVBhaW50ZXJQYXRoJiBwYXRoID0gbV9kYXRhLT5j
dXJyZW50UGF0aDsgLy8gQXZvaWQgZGV0YWNoaW5nIHRoZSBRUGFpbnRlclBhdGgKICAgICBwYXRo
LnNldEZpbGxSdWxlKHRvUXRGaWxsUnVsZShmaWxsUnVsZSgpKSk7CiAKLSAgICBkcmF3RmlsbGVk
U2hhZG93UGF0aCh0aGlzLCBwLCBwYXRoKTsKKyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkg
eworICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAgICAgICBw
LT5maWxsUGF0aChwYXRoLCBtX2RhdGEtPnNoYWRvd0NvbG9yKTsKKyAgICAgICAgcC0+dHJhbnNs
YXRlKC1tX2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAgfQogICAgIGlmIChtX2NvbW1vbi0+c3Rh
dGUuZmlsbFBhdHRlcm4pIHsKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGFmZmluZTsKICAgICAg
ICAgcC0+ZmlsbFBhdGgocGF0aCwgUUJydXNoKG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi0+
Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGFmZmluZSkpKTsKQEAgLTU1NywxNiArNTU2LDEyIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKCkKICAgICBRUGFpbnRlclBhdGgmIHBhdGgg
PSBtX2RhdGEtPmN1cnJlbnRQYXRoOyAvLyBBdm9pZCBkZXRhY2hpbmcgdGhlIFFQYWludGVyUGF0
aAogICAgIHBhdGguc2V0RmlsbFJ1bGUodG9RdEZpbGxSdWxlKGZpbGxSdWxlKCkpKTsKIAotICAg
IEZsb2F0U2l6ZSBzaGFkb3dTaXplOwotICAgIGZsb2F0IHNoYWRvd0JsdXI7Ci0gICAgQ29sb3Ig
c2hhZG93Q29sb3I7Ci0gICAgaWYgKGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBz
aGFkb3dDb2xvcikpIHsKLSAgICAgICAgUVRyYW5zZm9ybSB0KHAtPndvcmxkVHJhbnNmb3JtKCkp
OwotICAgICAgICBwLT50cmFuc2xhdGUoc2hhZG93U2l6ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhl
aWdodCgpKTsKKyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgeworICAgICAgICBwLT50cmFu
c2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOwogICAgICAgICBRUGVuIHNoYWRvd1BlbihwZW4p
OwotICAgICAgICBzaGFkb3dQZW4uc2V0Q29sb3Ioc2hhZG93Q29sb3IpOworICAgICAgICBzaGFk
b3dQZW4uc2V0Q29sb3IobV9kYXRhLT5zaGFkb3dDb2xvcik7CiAgICAgICAgIHAtPnN0cm9rZVBh
dGgocGF0aCwgc2hhZG93UGVuKTsKLSAgICAgICAgcC0+c2V0V29ybGRUcmFuc2Zvcm0odCk7Cisg
ICAgICAgIHAtPnRyYW5zbGF0ZSgtbV9kYXRhLT5zaGFkb3dPZmZzZXQpOwogICAgIH0KICAgICBp
ZiAobV9jb21tb24tPnN0YXRlLnN0cm9rZVBhdHRlcm4pIHsKICAgICAgICAgQWZmaW5lVHJhbnNm
b3JtIGFmZmluZTsKQEAgLTU4NCwxOCArNTc5LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZVBhdGgoKQogICAgIG1fZGF0YS0+Y3VycmVudFBhdGggPSBRUGFpbnRlclBhdGgoKTsKIH0K
IAotc3RhdGljIGlubGluZSB2b2lkIGRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0g
ICAgRmxvYXRTaXplIHNoYWRvd1NpemU7Ci0gICAgZmxvYXQgc2hhZG93Qmx1cjsKLSAgICBDb2xv
ciBzaGFkb3dDb2xvcjsKLSAgICBpZiAoY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNo
YWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewotICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdChy
ZWN0KTsKLSAgICAgICAgc2hhZG93UmVjdC5tb3ZlKHNoYWRvd1NpemUud2lkdGgoKSwgc2hhZG93
U2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIHAtPmZpbGxSZWN0KHNoYWRvd1JlY3QsIFFDb2xvcihz
aGFkb3dDb2xvcikpOwotICAgIH0KLX0KLQogc3RhdGljIGlubGluZSB2b2lkIGRyYXdSZXBlYXRQ
YXR0ZXJuKFFQYWludGVyKiBwLCBRUGl4bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBjb25zdCBib29sIHJlcGVhdFgsIGNvbnN0IGJvb2wgcmVwZWF0WSkKIHsKICAgICAvLyBQYXR0
ZXJucyBtdXN0IGJlIHBhaW50ZWQgc28gdGhhdCB0aGUgdG9wIGxlZnQgb2YgdGhlIGZpcnN0IGlt
YWdlIGlzIGFuY2hvcmVkIGF0CkBAIC02NzEsMjIgKzY1NCwxOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIFFQYWludGVyKiBwID0g
bV9kYXRhLT5wKCk7CiAgICAgRmxvYXRSZWN0IG5vcm1hbGl6ZWRSZWN0ID0gcmVjdC5ub3JtYWxp
emVkKCk7CiAKLSAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKLSAgICBmbG9hdCBzaGFkb3dCbHVy
OwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotICAgIGJvb2wgaGFzU2hhZG93ID0gZ2V0U2hhZG93
KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKTsKLSAgICBGbG9hdFJlY3Qgc2hh
ZG93RGVzdFJlY3Q7CisgICAgUVJlY3RGIHNoYWRvd0Rlc3RSZWN0OwogICAgIFFJbWFnZSogc2hh
ZG93SW1hZ2UgPSAwOwogICAgIFFQYWludGVyKiBwU2hhZG93ID0gMDsKIAotICAgIGlmIChoYXNT
aGFkb3cpIHsKKyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewogICAgICAgICBzaGFkb3dJ
bWFnZSA9IG5ldyBRSW1hZ2Uocm91bmRlZEludFNpemUobm9ybWFsaXplZFJlY3Quc2l6ZSgpKSwg
UUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQpOwogICAgICAgICBwU2hhZG93ID0g
bmV3IFFQYWludGVyKHNoYWRvd0ltYWdlKTsKICAgICAgICAgc2hhZG93RGVzdFJlY3QgPSBub3Jt
YWxpemVkUmVjdDsKLSAgICAgICAgc2hhZG93RGVzdFJlY3QubW92ZShzaGFkb3dTaXplLndpZHRo
KCksIHNoYWRvd1NpemUuaGVpZ2h0KCkpOworICAgICAgICBzaGFkb3dEZXN0UmVjdC50cmFuc2xh
dGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOwogCiAgICAgICAgIHBTaGFkb3ctPnNldENvbXBvc2l0
aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7Ci0gICAgICAgIHBTaGFk
b3ctPmZpbGxSZWN0KHNoYWRvd0ltYWdlLT5yZWN0KCksIHNoYWRvd0NvbG9yKTsKKyAgICAgICAg
cFNoYWRvdy0+ZmlsbFJlY3Qoc2hhZG93RGVzdFJlY3QsIG1fZGF0YS0+c2hhZG93Q29sb3IpOwog
ICAgICAgICBwU2hhZG93LT5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9u
TW9kZV9EZXN0aW5hdGlvbkluKTsKICAgICB9CiAKQEAgLTY5Niw3ICs2NzUsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgICAgICBR
QnJ1c2ggYnJ1c2gobV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLT5jcmVhdGVQbGF0Zm9ybVBh
dHRlcm4oYWZmaW5lKSk7CiAgICAgICAgIFFQaXhtYXAqIGltYWdlID0gbV9jb21tb24tPnN0YXRl
LmZpbGxQYXR0ZXJuLT50aWxlSW1hZ2UoKS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsK
IAotICAgICAgICBpZiAoaGFzU2hhZG93KSB7CisgICAgICAgIGlmIChtX2RhdGEtPmhhc1NoYWRv
dygpKSB7CiAgICAgICAgICAgICBkcmF3UmVwZWF0UGF0dGVybihwU2hhZG93LCBpbWFnZSwgRmxv
YXRSZWN0KHN0YXRpY19jYXN0PFFSZWN0Rj4oc2hhZG93SW1hZ2UtPnJlY3QoKSkpLCBtX2NvbW1v
bi0+c3RhdGUuZmlsbFBhdHRlcm4tPnJlcGVhdFgoKSwgbV9jb21tb24tPnN0YXRlLmZpbGxQYXR0
ZXJuLT5yZXBlYXRZKCkpOwogICAgICAgICAgICAgcFNoYWRvdy0+ZW5kKCk7CiAgICAgICAgICAg
ICBwLT5kcmF3SW1hZ2Uoc2hhZG93RGVzdFJlY3QsICpzaGFkb3dJbWFnZSwgc2hhZG93SW1hZ2Ut
PnJlY3QoKSk7CkBAIC03MDYsMTQgKzY4NSwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Zmls
bFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgICAgICBRQnJ1c2ggYnJ1c2goKm1fY29t
bW9uLT5zdGF0ZS5maWxsR3JhZGllbnQtPnBsYXRmb3JtR3JhZGllbnQoKSk7CiAgICAgICAgIGJy
dXNoLnNldFRyYW5zZm9ybShtX2NvbW1vbi0+c3RhdGUuZmlsbEdyYWRpZW50LT5ncmFkaWVudFNw
YWNlVHJhbnNmb3JtKCkpOwogCi0gICAgICAgIGlmIChoYXNTaGFkb3cpIHsKKyAgICAgICAgaWYg
KG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKICAgICAgICAgICAgIHBTaGFkb3ctPmZpbGxSZWN0KHNo
YWRvd0ltYWdlLT5yZWN0KCksIGJydXNoKTsKICAgICAgICAgICAgIHBTaGFkb3ctPmVuZCgpOwog
ICAgICAgICAgICAgcC0+ZHJhd0ltYWdlKHNoYWRvd0Rlc3RSZWN0LCAqc2hhZG93SW1hZ2UsIHNo
YWRvd0ltYWdlLT5yZWN0KCkpOwogICAgICAgICB9CiAgICAgICAgIHAtPmZpbGxSZWN0KG5vcm1h
bGl6ZWRSZWN0LCBicnVzaCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGhhc1NoYWRvdykg
eworICAgICAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewogICAgICAgICAgICAgcFNoYWRv
dy0+ZmlsbFJlY3Qoc2hhZG93SW1hZ2UtPnJlY3QoKSwgcC0+YnJ1c2goKSk7CiAgICAgICAgICAg
ICBwU2hhZG93LT5lbmQoKTsKICAgICAgICAgICAgIHAtPmRyYXdJbWFnZShzaGFkb3dEZXN0UmVj
dCwgKnNoYWRvd0ltYWdlLCBzaGFkb3dJbWFnZS0+cmVjdCgpKTsKQEAgLTczMyw4ICs3MTIsMTAg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKIAogICAgIG1fZGF0YS0+c29saWRDb2xvci5zZXRD
b2xvcihjb2xvcik7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKLSAgICBpZiAobV9j
b21tb24tPnN0YXRlLnNoYWRvd0NvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAgZHJhd0JvcmRlcmxl
c3NSZWN0U2hhZG93KHRoaXMsIHAsIHJlY3QpOworCisgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93
KCkpCisgICAgICAgIHAtPmZpbGxSZWN0KFFSZWN0RihyZWN0KS50cmFuc2xhdGVkKG1fZGF0YS0+
c2hhZG93T2Zmc2V0KSwgbV9kYXRhLT5zaGFkb3dDb2xvcik7CisKICAgICBwLT5maWxsUmVjdChy
ZWN0LCBtX2RhdGEtPnNvbGlkQ29sb3IpOwogfQogCkBAIC03NDUsNyArNzI2LDExIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgSW50U2l6ZSYgdG9wTGVmCiAKICAgICBQYXRoIHBhdGggPSBQYXRoOjpjcmVhdGVSb3VuZGVk
UmVjdGFuZ2xlKHJlY3QsIHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdo
dCk7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKLSAgICBkcmF3RmlsbGVkU2hhZG93
UGF0aCh0aGlzLCBwLCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKKyAgICBpZiAobV9kYXRhLT5oYXNT
aGFkb3coKSkgeworICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOwor
ICAgICAgICBwLT5maWxsUGF0aChwYXRoLnBsYXRmb3JtUGF0aCgpLCBtX2RhdGEtPnNoYWRvd0Nv
bG9yKTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKC1tX2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAg
fQogICAgIHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRoKCksIFFDb2xvcihjb2xvcikpOwog
fQogCkBAIC04ODcsNyArODcyLDcgQEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRU
b0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIGZyZWN0KQogICAgIHJldHVybiBGbG9hdFJl
Y3Qocm91bmRlZE9yaWdpbiwgcm91bmRlZExvd2VyUmlnaHQgLSByb3VuZGVkT3JpZ2luKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IGJs
dXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSkKIHsKICAgICAvLyBRdCBkb2Vzbid0
IHN1cHBvcnQgc2hhZG93cyBuYXRpdmVseSwgdGhleSBhcmUgZHJhd24gbWFudWFsbHkgaW4gdGhl
IGRyYXcqCiAgICAgLy8gZnVuY3Rpb25zCkBAIC04OTcsMTIgKzg4MiwzOSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCwgY29uc3QgQ29sbwogICAgICAgICAvLyBXZSBmbGlwIHRoZSBoZWlnaHQgc2luY2UgQ0cgYW5k
IEhUTUw1IENhbnZhcyBoYXZlIG9wcG9zaXRlIFkgYXhpcwogICAgICAgICBtX2NvbW1vbi0+c3Rh
dGUuc2hhZG93U2l6ZSA9IEZsb2F0U2l6ZShzaXplLndpZHRoKCksIC1zaXplLmhlaWdodCgpKTsK
ICAgICB9CisKKyAgICAvLyBIZXJlIHdlIGp1c3Qgc3RvcmUgaW1wb3J0YW50IHNoYWRvdyBzdGF0
ZXMuCisKKyAgICBtX2RhdGEtPnNoYWRvd0JsdXJSYWRpdXMgPSBxUm91bmQoYmx1cik7CisgICAg
bV9kYXRhLT5zaGFkb3dPZmZzZXQgPSBRUG9pbnRGKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXpl
LndpZHRoKCksIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXplLmhlaWdodCgpKTsKKyAgICBtX2Rh
dGEtPnNoYWRvd0NvbG9yID0gY29sb3I7CisKKyAgICAvLyBUaGUgdHlwZSBvZiBzaGFkb3cgaXMg
ZGVjaWRlZCBieSB0aGUgYmx1ciByYWRpdXMsIHNoYWRvdyBvZmZzZXQsIGFuZCBzaGFkb3cgY29s
b3IuCisKKyAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSB8fCAhY29sb3IuYWxwaGEoKSkgeworICAg
ICAgICAvLyBDYW4ndCBwYWludCB0aGUgc2hhZG93IHdpdGggaW52YWxpZCBvciBpbnZpc2libGUg
Y29sb3IuCisgICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZTo6Tm9TaGFkb3c7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGJsdXIgPj0g
MSkgeworICAgICAgICAgICAgLy8gU2hhZG93IGlzIGFsd2F5cyBibHVycmVkLCBldmVuIHRoZSBv
ZmZzZXQgaXMgemVyby4KKyAgICAgICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6Qmx1clNoYWRvdzsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGlmIChtX2RhdGEtPnNoYWRvd09mZnNldC5pc051bGwoKSkgeworICAgICAgICAg
ICAgICAgIC8vIFdpdGhvdXQgYmx1ciBhbmQgemVybyBvZmZzZXQgbWVhbnMgdGhlIHNoYWRvdyBp
cyBmdWxseSBoaWRkZW4uCisgICAgICAgICAgICAgICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpOb1NoYWRvdzsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbG9yLmhhc0FscGhhKCkpCisgICAgICAgICAgICAg
ICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZTo6QWxwaGFTb2xpZFNoYWRvdzsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZTo6T3BhcXVlU29saWRTaGFkb3c7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KCkKIHsKLSAgICAv
LyBRdCBkb2Vzbid0IHN1cHBvcnQgc2hhZG93cyBuYXRpdmVseSwgdGhleSBhcmUgZHJhd24gbWFu
dWFsbHkgaW4gdGhlIGRyYXcqCi0gICAgLy8gZnVuY3Rpb25zCisgICAgbV9kYXRhLT5zaGFkb3dU
eXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpOb1NoYWRvdzsKIH0KIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64350</attachid>
            <date>2010-08-13 09:04:44 -0700</date>
            <delta_ts>2010-08-14 00:36:36 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-34479-20100813090324.patch</filename>
            <type>text/plain</type>
            <size>8804</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWEwNjYzMmVlYmI2YmI1NmRiYjI0ZTJmYTE3OTRhMmRhMTFkNzM3MS4uYmM3NzExNDVhMDA1M2Jh
NmZhOTcxOWM3ZDM0NjBlZmUwYTMwZDk4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTUsNiArNSwyNCBAQAogICAgICAgICBbUXRdIENh
bnZhcyBhbmQgQ1NTOiBibHVyIG9wdGlvbiBpbiBzaGFkb3cgbm90IHdvcmtpbmcKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDc5CiAKKyAgICAgICAg
UGF0Y2ggMjogSW1wbGVtZW50IHNoYWRvdyBibHVyIGZ1bmN0aW9uLCB1c2UgaXQgZm9yIHNvbGlk
IGZpbGwuCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBmb2xsb3dzIHRoZSBhcHByb3hpbWF0
aW9uIG9mIEdhdXNzaWFuIGJsdXIKKyAgICAgICAgd2l0aCB0aHJlZSBzdWNjZXNzaXZlIGJveCBi
bHVycywgYnV0IHdvcmtpbmcgb24gYWxwaGEgY2hhbm5lbCBvbmx5CisgICAgICAgIChzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvU1ZHL2ZpbHRlcnMuaHRtbCNmZUdhdXNzaWFuQmx1cikuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Omhhc0JsdXJTaGFk
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Ymx1ckhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6c2hhZG93Qmx1cik6IEFwcHJveGltYXRpb24gb2YgR2F1c3NpYW4gYmx1ci4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOgorCisyMDEwLTA4LTEzICBBcml5
YSBIaWRheWF0ICA8YXJpeWFAc2VuY2hhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIENhbnZhcyBhbmQgQ1NTOiBibHVyIG9wdGlvbiBp
biBzaGFkb3cgbm90IHdvcmtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0NDc5CisKICAgICAgICAgUGF0Y2ggMTogUmVmYWN0b3Igc2hhZG93IHN0
YXRlcyBoYW5kbGluZy4KIAogICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNz
Q29udGV4dFF0LmNwcDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NDb250ZXh0UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFw
aGljc0NvbnRleHRRdC5jcHAKaW5kZXggYTQwOTMyOGM1YTM3OGIwMzRjNTI0ZDU5MjE4MjEwNjUy
Yzg2MWRiMC4uNDQ1NjAzNDk0OGFmZWY2MTIxYjUxOWNhMGQ5YjQ5YmY3OTI5ODc5NCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAK
QEAgLTgsNiArOCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBEaXJrIFNjaHVsemUgPHZiczg1QGdteC5kZT4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBTZW5jaGEsIEluYy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKQEAgLTIxNCw2ICsyMTUsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc2hhZG93
VHlwZSAhPSBOb1NoYWRvdzsKICAgICB9CiAKKyAgICBib29sIGhhc0JsdXJTaGFkb3coKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIHNoYWRvd1R5cGUgPT0gQmx1clNoYWRvdzsKKyAgICB9
CisKIHByaXZhdGU6CiAgICAgUVBhaW50ZXIqIHBhaW50ZXI7CiB9OwpAQCAtMjQ2LDYgKzI1Miwx
MzQgQEAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlKCkKIHsKIH0KIAorI2RlZmluZSBCTFVSX1NVTV9TSElGVCAxNAorCisvLyBO
b3RlOiBpbWFnZSBtdXN0IGJlIFJHQjMyIGZvcm1hdAorc3RhdGljIHZvaWQgYmx1ckhvcml6b250
YWwoUUltYWdlJiBpbWFnZSwgaW50IHJhZGl1cywgYm9vbCBzd2FwID0gZmFsc2UpCit7CisgICAg
Ly8gU2VlIGNvbW1lbnRzIGluIGh0dHA6Ly93ZWJraXQub3JnL2IvNDA3OTMsIGl0IHNlZW1zIHNl
bnNpYmxlCisgICAgLy8gdG8gZm9sbG93IFNraWEncyBsaW1pdCBvZiAxMjggcGl4ZWxzIG9mIGJs
dXIgcmFkaXVzCisgICAgcmFkaXVzID0gcU1pbigxMjgsIHJhZGl1cyk7CisKKyAgICBpbnQgaW1n
V2lkdGggPSBpbWFnZS53aWR0aCgpOworICAgIGludCBpbWdIZWlnaHQgPSBpbWFnZS5oZWlnaHQo
KTsKKworICAgIC8vIENoZWNrIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0bWwj
ZmVHYXVzc2lhbkJsdXIKKyAgICAvLyBmb3IgdGhlIGFwcHJvYWNoZXMgd2hlbiB0aGUgYm94LWJs
dXIgcmFkaXVzIGlzIGV2ZW4gdnMgb2RkLgorICAgIGludCBkbWF4ID0gcmFkaXVzID4+IDE7Cisg
ICAgaW50IGRtaW4gPSBxTWF4KDAsIGRtYXggLSAxICsgKHJhZGl1cyAmIDEpKTsKKworICAgIGZv
ciAoaW50IHkgPSAwOyB5IDwgaW1nSGVpZ2h0OyArK3kpIHsKKworICAgICAgICB1bnNpZ25lZCBj
aGFyKiBwaXhlbHMgPSBpbWFnZS5zY2FuTGluZSh5KTsKKworICAgICAgICBpbnQgbGVmdCwgcmln
aHQsIHBpeGVsQ291bnQsIHByZXYsIG5leHQ7CisgICAgICAgIGludCBmaXJzdEFscGhhLCBsYXN0
QWxwaGEsIHRvdGFsQWxwaGE7CisgICAgICAgIHVuc2lnbmVkIGNoYXIqIHRhcmdldDsKKyAgICAg
ICAgdW5zaWduZWQgY2hhciogcHJldlB0cjsKKyAgICAgICAgdW5zaWduZWQgY2hhciogbmV4dFB0
cjsKKworICAgICAgICBpbnQgaW52Q291bnQ7CisKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBh
bHBoYUNoYW5uZWwgPSAzOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IGJsdWVDaGFubmVsID0g
MDsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBncmVlbkNoYW5uZWwgPSAxOworCisgICAgICAg
IC8vIEZvciBlYWNoIHN0ZXAsIHdlIHVzZSBzbGlkaW5nIHdpbmRvdyBhbGdvcml0aG0uIFRoaXMg
aXMgbXVjaCBtb3JlCisgICAgICAgIC8vIGVmZmljaWVudCB0aGFuIGNvbXB1dGluZyB0aGUgc3Vt
IG9mIGVhY2ggcGl4ZWxzIGNvdmVyZWQgYnkgdGhlIGJveAorICAgICAgICAvLyBrZXJuZWwgc2l6
ZSBmb3IgZWFjaCB4LgorCisgICAgICAgIC8vIEFzIG5vdGVkIGluIHRoZSBTVkcgZmlsdGVyIHNw
ZWNpZmljYXRpb24sIHJ1bm5pbmcgYm94IGJsdXIgM3gKKyAgICAgICAgLy8gYXBwcm94aW1hdGVz
IGEgcmVhbCBnYXVzc2lhbiBibHVyIG5pY2VseS4KKworICAgICAgICAvLyBTdGVwIDE6IGJsdXIg
YWxwaGEgY2hhbm5lbCBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiB0aGUgYmx1ZSBjaGFubmVsCisg
ICAgICAgIGxlZnQgPSBzd2FwID8gZG1heCA6IGRtaW47CisgICAgICAgIHJpZ2h0ID0gc3dhcCA/
IGRtaW4gOiBkbWF4OworICAgICAgICBwaXhlbENvdW50ID0gbGVmdCArIDEgKyByaWdodDsKKyAg
ICAgICAgaW52Q291bnQgPSAoMSA8PCBCTFVSX1NVTV9TSElGVCkgLyBwaXhlbENvdW50OworICAg
ICAgICBwcmV2ID0gLWxlZnQ7CisgICAgICAgIG5leHQgPSAxICsgcmlnaHQ7CisgICAgICAgIGZp
cnN0QWxwaGEgPSBwaXhlbHNbYWxwaGFDaGFubmVsXTsKKyAgICAgICAgbGFzdEFscGhhID0gcGl4
ZWxzWyhpbWdXaWR0aCAtIDEpICogNCArIGFscGhhQ2hhbm5lbF07CisgICAgICAgIHRvdGFsQWxw
aGEgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBpeGVsQ291bnQ7ICsraSkKKyAg
ICAgICAgICAgIHRvdGFsQWxwaGEgKz0gcGl4ZWxzW3FCb3VuZCgwLCBpIC0gbGVmdCwgaW1nV2lk
dGggLSAxKSAqIDQgKyBhbHBoYUNoYW5uZWxdOworICAgICAgICB0YXJnZXQgPSBwaXhlbHMgKyBi
bHVlQ2hhbm5lbDsKKyAgICAgICAgcHJldlB0ciA9IHBpeGVscyArIHByZXYgKiA0ICsgYWxwaGFD
aGFubmVsOworICAgICAgICBuZXh0UHRyID0gcGl4ZWxzICsgbmV4dCAqIDQgKyBhbHBoYUNoYW5u
ZWw7CisgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgaW1nV2lkdGg7ICsreCwgKytwcmV2LCAr
K25leHQsIHRhcmdldCArPSA0LCBwcmV2UHRyICs9IDQsIG5leHRQdHIgKz0gNCkgeworICAgICAg
ICAgICAgKnRhcmdldCA9ICh0b3RhbEFscGhhICogaW52Q291bnQpID4+IEJMVVJfU1VNX1NISUZU
OworICAgICAgICAgICAgaW50IGRlbHRhID0gKChuZXh0IDwgaW1nV2lkdGgpID8gKm5leHRQdHIg
OiBsYXN0QWxwaGEpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICgocHJldiA+IDApID8gKnBy
ZXZQdHIgOiBmaXJzdEFscGhhKTsKKyAgICAgICAgICAgIHRvdGFsQWxwaGEgKz0gZGVsdGE7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBTdGVwIDI6IGJsdXIgYmx1ZSBjaGFubmVsIGFuZCBzdG9y
ZSB0aGUgcmVzdWx0IGluIHRoZSBncmVlbiBjaGFubmVsCisgICAgICAgIGxlZnQgPSBzd2FwID8g
ZG1pbiA6IGRtYXg7CisgICAgICAgIHJpZ2h0ID0gc3dhcCA/IGRtYXggOiBkbWluOworICAgICAg
ICBwaXhlbENvdW50ID0gbGVmdCArIDEgKyByaWdodDsKKyAgICAgICAgaW52Q291bnQgPSAoMSA8
PCBCTFVSX1NVTV9TSElGVCkgLyBwaXhlbENvdW50OworICAgICAgICBwcmV2ID0gLWxlZnQ7Cisg
ICAgICAgIG5leHQgPSAxICsgcmlnaHQ7CisgICAgICAgIGZpcnN0QWxwaGEgPSBwaXhlbHNbYmx1
ZUNoYW5uZWxdOworICAgICAgICBsYXN0QWxwaGEgPSBwaXhlbHNbKGltZ1dpZHRoIC0gMSkgKiA0
ICsgYmx1ZUNoYW5uZWxdOworICAgICAgICB0b3RhbEFscGhhID0gMDsKKyAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBwaXhlbENvdW50OyArK2kpCisgICAgICAgICAgICB0b3RhbEFscGhhICs9
IHBpeGVsc1txQm91bmQoMCwgaSAtIGxlZnQsIGltZ1dpZHRoIC0gMSkgKiA0ICsgYmx1ZUNoYW5u
ZWxdOworICAgICAgICB0YXJnZXQgPSBwaXhlbHMgKyBncmVlbkNoYW5uZWw7CisgICAgICAgIHBy
ZXZQdHIgPSBwaXhlbHMgKyBwcmV2ICogNCArIGJsdWVDaGFubmVsOworICAgICAgICBuZXh0UHRy
ID0gcGl4ZWxzICsgbmV4dCAqIDQgKyBibHVlQ2hhbm5lbDsKKyAgICAgICAgZm9yIChpbnQgeCA9
IDA7IHggPCBpbWdXaWR0aDsgKyt4LCArK3ByZXYsICsrbmV4dCwgdGFyZ2V0ICs9IDQsIHByZXZQ
dHIgKz0gNCwgbmV4dFB0ciArPSA0KSB7CisgICAgICAgICAgICAqdGFyZ2V0ID0gKHRvdGFsQWxw
aGEgKiBpbnZDb3VudCkgPj4gQkxVUl9TVU1fU0hJRlQ7CisgICAgICAgICAgICBpbnQgZGVsdGEg
PSAoKG5leHQgPCBpbWdXaWR0aCkgPyAqbmV4dFB0ciA6IGxhc3RBbHBoYSkgLQorICAgICAgICAg
ICAgICAgICAgICAgICAgKChwcmV2ID4gMCkgPyAqcHJldlB0ciA6IGZpcnN0QWxwaGEpOworICAg
ICAgICAgICAgdG90YWxBbHBoYSArPSBkZWx0YTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0
ZXAgMzogYmx1ciBncmVlbiBjaGFubmVsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZSBhbHBo
YSBjaGFubmVsCisgICAgICAgIGxlZnQgPSBkbWF4OworICAgICAgICByaWdodCA9IGRtYXg7Cisg
ICAgICAgIHBpeGVsQ291bnQgPSBsZWZ0ICsgMSArIHJpZ2h0OworICAgICAgICBpbnZDb3VudCA9
ICgxIDw8IEJMVVJfU1VNX1NISUZUKSAvIHBpeGVsQ291bnQ7CisgICAgICAgIHByZXYgPSAtbGVm
dDsKKyAgICAgICAgbmV4dCA9IDEgKyByaWdodDsKKyAgICAgICAgZmlyc3RBbHBoYSA9IHBpeGVs
c1tncmVlbkNoYW5uZWxdOworICAgICAgICBsYXN0QWxwaGEgPSBwaXhlbHNbKGltZ1dpZHRoIC0g
MSkgKiA0ICsgZ3JlZW5DaGFubmVsXTsKKyAgICAgICAgdG90YWxBbHBoYSA9IDA7CisgICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgcGl4ZWxDb3VudDsgKytpKQorICAgICAgICAgICAgdG90YWxB
bHBoYSArPSBwaXhlbHNbcUJvdW5kKDAsIGkgLSBsZWZ0LCBpbWdXaWR0aCAtIDEpICogNCArIGdy
ZWVuQ2hhbm5lbF07CisgICAgICAgIHRhcmdldCA9IHBpeGVscyArIGFscGhhQ2hhbm5lbDsKKyAg
ICAgICAgcHJldlB0ciA9IHBpeGVscyArIHByZXYgKiA0ICsgZ3JlZW5DaGFubmVsOworICAgICAg
ICBuZXh0UHRyID0gcGl4ZWxzICsgbmV4dCAqIDQgKyBncmVlbkNoYW5uZWw7CisgICAgICAgIGZv
ciAoaW50IHggPSAwOyB4IDwgaW1nV2lkdGg7ICsreCwgKytwcmV2LCArK25leHQsIHRhcmdldCAr
PSA0LCBwcmV2UHRyICs9IDQsIG5leHRQdHIgKz0gNCkgeworICAgICAgICAgICAgKnRhcmdldCA9
ICh0b3RhbEFscGhhICogaW52Q291bnQpID4+IEJMVVJfU1VNX1NISUZUOworICAgICAgICAgICAg
aW50IGRlbHRhID0gKChuZXh0IDwgaW1nV2lkdGgpID8gKm5leHRQdHIgOiBsYXN0QWxwaGEpIC0K
KyAgICAgICAgICAgICAgICAgICAgICAgICgocHJldiA+IDApID8gKnByZXZQdHIgOiBmaXJzdEFs
cGhhKTsKKyAgICAgICAgICAgIHRvdGFsQWxwaGEgKz0gZGVsdGE7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3N0YXRpYyB2b2lkIHNoYWRvd0JsdXIoUUltYWdlJiBpbWFnZSwgaW50IHJhZGl1cywg
Y29uc3QgUUNvbG9yJiBzaGFkb3dDb2xvcikKK3sKKyAgICBibHVySG9yaXpvbnRhbChpbWFnZSwg
cmFkaXVzKTsKKworICAgIFFUcmFuc2Zvcm0gdHJhbnNmb3JtOworICAgIHRyYW5zZm9ybS5yb3Rh
dGUoOTApOworICAgIGltYWdlID0gaW1hZ2UudHJhbnNmb3JtZWQodHJhbnNmb3JtKTsKKyAgICBi
bHVySG9yaXpvbnRhbChpbWFnZSwgcmFkaXVzLCB0cnVlKTsKKyAgICB0cmFuc2Zvcm0ucmVzZXQo
KTsKKyAgICB0cmFuc2Zvcm0ucm90YXRlKDI3MCk7CisgICAgaW1hZ2UgPSBpbWFnZS50cmFuc2Zv
cm1lZCh0cmFuc2Zvcm0pOworCisgICAgLy8gImNvbG9yaXplIiB3aXRoIHRoZSByaWdodCBzaGFk
b3cgY29sb3IKKyAgICBRUGFpbnRlciBwKCZpbWFnZSk7CisgICAgcC5zZXRDb21wb3NpdGlvbk1v
ZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VJbik7CisgICAgcC5maWxsUmVjdChp
bWFnZS5yZWN0KCksIHNoYWRvd0NvbG9yKTsKKyAgICBwLmVuZCgpOworfQorCisKIEdyYXBoaWNz
Q29udGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
KQogICAgIDogbV9jb21tb24oY3JlYXRlR3JhcGhpY3NDb250ZXh0UHJpdmF0ZSgpKQogICAgICwg
bV9kYXRhKG5ldyBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoY29udGV4dCkpCkBAIC03
MTMsOCArODQ3LDMwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTCiAgICAgbV9kYXRhLT5zb2xp
ZENvbG9yLnNldENvbG9yKGNvbG9yKTsKICAgICBRUGFpbnRlciogcCA9IG1fZGF0YS0+cCgpOwog
Ci0gICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpCi0gICAgICAgIHAtPmZpbGxSZWN0KFFSZWN0
RihyZWN0KS50cmFuc2xhdGVkKG1fZGF0YS0+c2hhZG93T2Zmc2V0KSwgbV9kYXRhLT5zaGFkb3dD
b2xvcik7CisKKyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgeworCisgICAgICAgIGlmICht
X2RhdGEtPmhhc0JsdXJTaGFkb3coKSkgeworCisgICAgICAgICAgICAvLyBXZSBleHBhbmQgdGhl
IGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0byBnaXZlIGV4dHJhIHNwYWNlCisgICAgICAg
ICAgICAvLyBmb3IgdGhlIGJsdXIgdHJhbnNpdGlvbi4KKyAgICAgICAgICAgIGludCBleHRyYSA9
IG1fZGF0YS0+c2hhZG93Qmx1clJhZGl1cyAqIDI7CisgICAgICAgICAgICBRUmVjdCBpbWFnZVJl
Y3QgPSBRUmVjdEYocmVjdCkudG9BbGlnbmVkUmVjdCgpLmFkanVzdGVkKC1leHRyYSwgLWV4dHJh
LCBleHRyYSwgZXh0cmEpOworICAgICAgICAgICAgUUltYWdlIHNoYWRvd0ltYWdlKGltYWdlUmVj
dC5zaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsKKyAgICAgICAg
ICAgIHNoYWRvd0ltYWdlLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKworICAgICAgICAgICAgUVBh
aW50ZXIgc2hhZG93UGFpbnRlcigmc2hhZG93SW1hZ2UpOworICAgICAgICAgICAgc2hhZG93UGFp
bnRlci5maWxsUmVjdChyZWN0LngoKSAtIGltYWdlUmVjdC54KCksIHJlY3QueSgpIC0gaW1hZ2VS
ZWN0LnkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpLCBtX2RhdGEtPnNoYWRvd0NvbG9yKTsKKyAgICAgICAgICAgIHNoYWRv
d1BhaW50ZXIuZW5kKCk7CisgICAgICAgICAgICBzaGFkb3dCbHVyKHNoYWRvd0ltYWdlLCBtX2Rh
dGEtPnNoYWRvd0JsdXJSYWRpdXMsIG1fZGF0YS0+c2hhZG93Q29sb3IpOworICAgICAgICAgICAg
cC0+ZHJhd0ltYWdlKGltYWdlUmVjdC50b3BMZWZ0KCkgKyBtX2RhdGEtPnNoYWRvd09mZnNldCwg
c2hhZG93SW1hZ2UpOworCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwLT5maWxsUmVj
dChRUmVjdEYocmVjdCkudHJhbnNsYXRlZChtX2RhdGEtPnNoYWRvd09mZnNldCksIG1fZGF0YS0+
c2hhZG93Q29sb3IpOworICAgICAgICB9CisKKyAgICB9CiAKICAgICBwLT5maWxsUmVjdChyZWN0
LCBtX2RhdGEtPnNvbGlkQ29sb3IpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>