<?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>100706</bug_id>
          
          <creation_ts>2012-10-29 15:25:13 -0700</creation_ts>
          <short_desc>[TexMap] Remove unused textures in the texture pool.</short_desc>
          <delta_ts>2012-11-06 15:52:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>101404</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>753803</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:25:13 -0700</bug_when>
    <thetext>Previously, we did not remove entries in the texture pool of TextureMapper.
The texture pool is destroyed when TextureMapper is destroyed. It means the texture pool consumed texture memory until its destruction.
This patch removes entries on endPainting() if the entries were unused in this frame: between startPainting() and endPainting().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753805</commentid>
    <comment_count>1</comment_count>
      <attachid>171324</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:30:35 -0700</bug_when>
    <thetext>Created attachment 171324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753807</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:34:08 -0700</bug_when>
    <thetext>I think removing BitmapTextures is well if they are not used in this single frame. However, I do not think it is the best approach. I need your opinion :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753810</commentid>
    <comment_count>3</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-29 15:38:05 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I think removing BitmapTextures is well if they are not used in this single frame. However, I do not think it is the best approach. I need your opinion :)

I don&apos;t think we need a full-blown LRU. How about having a timer that removes the texture after a few seconds if it wasn&apos;t used again? Something like what we do with UpdateAtlas...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753812</commentid>
    <comment_count>4</comment_count>
      <attachid>171326</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:39:32 -0700</bug_when>
    <thetext>Created attachment 171326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753814</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:42:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; I don&apos;t think we need a full-blown LRU. How about having a timer that removes the texture after a few seconds if it wasn&apos;t used again? Something like what we do with UpdateAtlas...

Ok, good idea. I&apos;ll try :)

Do you think what time threshold is proper? The threshold of UpdateAtlas is 3 seconds.
const double inactiveSecondsTolerance = 3;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753819</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-29 15:49:03 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; I don&apos;t think we need a full-blown LRU. How about having a timer that removes the texture after a few seconds if it wasn&apos;t used again? Something like what we do with UpdateAtlas...
&gt; 
&gt; Ok, good idea. I&apos;ll try :)
&gt; 
&gt; Do you think what time threshold is proper? The threshold of UpdateAtlas is 3 seconds.
&gt; const double inactiveSecondsTolerance = 3;

3 is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754831</commentid>
    <comment_count>7</comment_count>
      <attachid>171326</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-30 17:41:29 -0700</bug_when>
    <thetext>Comment on attachment 171326
Patch

See above comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754906</commentid>
    <comment_count>8</comment_count>
      <attachid>171570</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-30 19:50:31 -0700</bug_when>
    <thetext>Created attachment 171570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754909</commentid>
    <comment_count>9</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-30 19:55:50 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 3 is fine.

Yes, It&apos;s done.

When I read your review, I wanted to remove the code recording used time of BitmapTexture. However, I can not remove the code because all BitmapTextures have one ref conut when release timer fires. We need the recent used time of BitmapTexture to determine which one can be removed.

In addition, I move the constructor and destructor of TextureMapper to TextureMapper.cpp because both need concrete BitmapTexturePool definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757354</commentid>
    <comment_count>10</comment_count>
      <attachid>171570</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-02 11:06:56 -0700</bug_when>
    <thetext>Comment on attachment 171570
Patch

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

Nice! See comments.

&gt; Source/WebCore/ChangeLog:14
&gt; +        Changing cache policy is not testabled in layout tests.

testabled -&gt; testable

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:36
&gt; +    inline void use() { m_usedTime = monotonicallyIncreasingTime(); }

use -&gt; markUsed

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:37
&gt; +    inline static bool compareLRU(const BitmapTexturePoolEntry&amp; a, const BitmapTexturePoolEntry&amp; b)

inline doesn&apos;t help you when you use it as a predicate.
Also, this should be called compareTimeLastUsed

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:43
&gt; +    double m_usedTime;

m_timeLastUsed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757866</commentid>
    <comment_count>11</comment_count>
      <attachid>172199</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-02 20:16:18 -0700</bug_when>
    <thetext>Created attachment 172199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757867</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-02 20:16:54 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 171570 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171570&amp;action=review
&gt; 
&gt; Nice! See comments.
&gt; 

Thanks for review!

&gt; testabled -&gt; testable
&gt; use -&gt; markUsed
&gt; m_timeLastUsed

All done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759643</commentid>
    <comment_count>13</comment_count>
      <attachid>172199</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 07:12:46 -0800</bug_when>
    <thetext>Comment on attachment 172199
Patch

Clearing flags on attachment: 172199

Committed r133601: &lt;http://trac.webkit.org/changeset/133601&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759644</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 07:12:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759728</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-06 08:22:32 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 172199 [details])
&gt; Clearing flags on attachment: 172199
&gt; 
&gt; Committed r133601: &lt;http://trac.webkit.org/changeset/133601&gt;

It broke the Qt Windows build:
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\texmap\TextureMapper.cpp(61) : error C2864: &apos;WebCore::BitmapTexturePool::s_releaseUnusedSecondsTolerance&apos; : only static const integral data members can be initialized within a class
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\texmap\TextureMapper.cpp(62) : error C2864: &apos;WebCore::BitmapTexturePool::s_releaseUnusedTexturesTimerInterval&apos; : only static const integral data members can be initialized within a class


Could you fix it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759987</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-06 13:16:48 -0800</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760037</commentid>
    <comment_count>17</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-06 14:12:46 -0800</bug_when>
    <thetext>I think it&apos;s still pretty early in Korea. If we can&apos;t wait for Dongsung, feel free to roll out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760073</commentid>
    <comment_count>18</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-06 14:49:11 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I think it&apos;s still pretty early in Korea. If we can&apos;t wait for Dongsung, feel free to roll out.

Sorry.
I&apos;m here, and I&apos;ll fix immediately!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760141</commentid>
    <comment_count>19</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-06 15:52:26 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I&apos;m here, and I&apos;ll fix immediately!

I filed Bug 101404 and posted a patch.

Additionally, if you are in CA, your time - 8 is Korea time :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171324</attachid>
            <date>2012-10-29 15:30:35 -0700</date>
            <delta_ts>2012-10-29 15:39:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100706-20121030072829.patch</filename>
            <type>text/plain</type>
            <size>9066</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZmYzZkMjY1MmIyZGEw
OTQzZDNiOGEyN2M5ZGJlNGFjNTA1MzUyNC4uOTQ1ZjYxNjBhODQwZDlkZGY0YWNjYmMwZTE3M2Jj
M2FjOTQ3MzFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEwLTI5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFJlbW92ZSBlbnRyaWVzIGluIHRoZSB0ZXh0dXJlIHBvb2wgYnkgdGhlIExSVSBvcmRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDcwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHks
IHdlIGRpZCBub3QgcmVtb3ZlIGVudHJpZXMgaW4gdGhlIHRleHR1cmUgcG9vbCBvZiBUZXh0dXJl
TWFwcGVyLiBUaGUKKyAgICAgICAgdGV4dHVyZSBwb29sIGlzIGRlc3Ryb3llZCB3aGVuIFRleHR1
cmVNYXBwZXIgaXMgZGVzdHJveWVkLiBJdCBtZWFucyB0aGUgdGV4dHVyZQorICAgICAgICBwb29s
IGNvbnN1bWVkIHRleHR1cmUgbWVtb3J5IHVudGlsIGl0cyBkZXN0cnVjdGlvbi4gVGhpcyBwYXRj
aCByZW1vdmVzIGVudHJpZXMKKyAgICAgICAgb24gZW5kUGFpbnRpbmcoKSBpZiB0aGUgZW50cmll
cyB3ZXJlIHVudXNlZCBpbiB0aGlzIGZyYW1lOiBiZXR3ZWVuCisgICAgICAgIHN0YXJ0UGFpbnRp
bmcoKSBhbmQgZW5kUGFpbnRpbmcoKS4KKworICAgICAgICBDaGFuZ2luZyBjYWNoZSBwb2xpY3kg
aXMgbm90IHRlc3RhYmxlZCBpbiBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBUZXh0dXJlUG9vbEVudHJ5OjpCaXRtYXBUZXh0dXJlUG9vbEVudHJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVQb29sRW50cnk6OnVzZSk6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlUG9vbEVudHJ5Ojpjb21wYXJlTFJVKToKKyAgICAgICAgKEJpdG1hcFRleHR1
cmVQb29sRW50cnkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChCaXRtYXBUZXh0dXJl
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlUG9vbDo6YmVnaW5QYWludGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlUG9vbDo6cmVsZWFzZVVudXNlZFRl
eHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjphY3F1aXJlVGV4
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZy
b21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlRleHR1cmVNYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6flRleHR1cmVNYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6YmVnaW5QYWludGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjplbmRQYWludGluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoVGV4dHVyZU1hcHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6
OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjplbmRQ
YWludGluZyk6CisKIDIwMTItMTAtMjggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFu
eTEwMC5uZXQ+CiAKICAgICAgICAgW1RleE1hcF0gTWFrZSBHcmFwaGljc0xheWVyQW5pbWF0aW9u
IGNob29zZSBhIHByb3BlciB0aW1pbmcgZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKaW5kZXgg
Y2VlNDViOTY5MDliMThiZGQxYzIwZmExYmNkNjBkMjM0NDhlZmIzNi4uOGVlYTgyZWRiNzJkMTY3
MWZkN2U0ZDU2MmI4NmI1ZGYyZDBkMmEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcApAQCAtMjEsMzMg
KzIxLDgxIEBACiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgogCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5j
bHVkZSA8d3RmL05vbkNvcHlpbmdTb3J0Lmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXI6OmFjcXVpcmVUZXh0dXJlRnJv
bVBvb2woY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3N0cnVjdCBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5
IHsKKyAgICBleHBsaWNpdCBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5KFBhc3NSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gdGV4dHVyZSkKKyAgICAgICAgOiBtX3RleHR1cmUodGV4dHVyZSkKKyAgICB7Cisg
ICAgfQorICAgIGlubGluZSB2b2lkIHVzZSgpIHsgbV90aW1lT2ZMUlUgPSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIGlubGluZSBzdGF0aWMgYm9vbCBjb21wYXJlTFJVKGNv
bnN0IEJpdG1hcFRleHR1cmVQb29sRW50cnkmIGEsIGNvbnN0IEJpdG1hcFRleHR1cmVQb29sRW50
cnkmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5tX3RpbWVPZkxSVSAtIGIubV90aW1lT2ZM
UlUgPiAwOworICAgIH0KKworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7Cisg
ICAgZG91YmxlIG1fdGltZU9mTFJVOworfTsKKworc3RydWN0IEJpdG1hcFRleHR1cmVQb29sIHsK
KyAgICBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFjcXVpcmVUZXh0dXJlKGNvbnN0IEludFNp
emUmLCBUZXh0dXJlTWFwcGVyKik7CisgICAgdm9pZCBiZWdpblBhaW50aW5nKCkgeyBtX3RpbWVU
b1N0YXJ0UGFpbnRpbmcgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZv
aWQgcmVsZWFzZVVudXNlZFRleHR1cmVzKCk7CisKKyAgICBWZWN0b3I8Qml0bWFwVGV4dHVyZVBv
b2xFbnRyeT4gbV90ZXh0dXJlczsKKyAgICBkb3VibGUgbV90aW1lVG9TdGFydFBhaW50aW5nOwor
fTsKKwordm9pZCBCaXRtYXBUZXh0dXJlUG9vbDo6cmVsZWFzZVVudXNlZFRleHR1cmVzKCkKIHsK
LSAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gc2VsZWN0ZWRUZXh0dXJlOworICAgIGlmIChtX3Rl
eHR1cmVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRGVsZXRlIGVudHJp
ZXMsIHdoaWNoIHdlcmUgdW51c2VkIGluIHRoaXMgZnJhbWUuCisgICAgbm9uQ29weWluZ1NvcnQo
bV90ZXh0dXJlcy5iZWdpbigpLCBtX3RleHR1cmVzLmVuZCgpLCBCaXRtYXBUZXh0dXJlUG9vbEVu
dHJ5Ojpjb21wYXJlTFJVKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0dXJl
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV90ZXh0dXJlc1tpXS5tX3RpbWVPZkxSVSA8
IG1fdGltZVRvU3RhcnRQYWludGluZykgeworICAgICAgICAgICAgbV90ZXh0dXJlcy5yZW1vdmUo
aSwgbV90ZXh0dXJlcy5zaXplKCkgLSBpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorfQogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHR1cmVQb29sLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiYgdGV4dHVyZSA9IG1f
dGV4dHVyZVBvb2xbaV07CitQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVQ
b29sOjphY3F1aXJlVGV4dHVyZShjb25zdCBJbnRTaXplJiBzaXplLCBUZXh0dXJlTWFwcGVyKiB0
ZXh0dXJlTWFwcGVyKQoreworICAgIEJpdG1hcFRleHR1cmVQb29sRW50cnkqIHNlbGVjdGVkRW50
cnkgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0dXJlcy5zaXplKCk7ICsr
aSkgeworICAgICAgICBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5KiBlbnRyeSA9ICZtX3RleHR1cmVz
W2ldOwogCi0gICAgICAgIC8vIElmIHRoZSBzdXJmYWNlIGhhcyBvbmx5IG9uZSByZWZlcmVuY2Ug
KHRoZSBvbmUgaW4gbV90ZXh0dXJlUG9vbCksIHdlIGNhbiBzYWZlbHkgcmV1c2UgaXQuCi0gICAg
ICAgIGlmICh0ZXh0dXJlLT5yZWZDb3VudCgpID4gMSkKKyAgICAgICAgLy8gSWYgdGhlIHN1cmZh
Y2UgaGFzIG9ubHkgb25lIHJlZmVyZW5jZSAodGhlIG9uZSBpbiBtX3RleHR1cmVzKSwgd2UgY2Fu
IHNhZmVseSByZXVzZSBpdC4KKyAgICAgICAgaWYgKGVudHJ5LT5tX3RleHR1cmUtPnJlZkNvdW50
KCkgPiAxKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKHRleHR1cmUtPmNh
blJldXNlV2l0aChzaXplKSkgewotICAgICAgICAgICAgc2VsZWN0ZWRUZXh0dXJlID0gdGV4dHVy
ZTsKKyAgICAgICAgaWYgKGVudHJ5LT5tX3RleHR1cmUtPmNhblJldXNlV2l0aChzaXplKSkgewor
ICAgICAgICAgICAgc2VsZWN0ZWRFbnRyeSA9IGVudHJ5OwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXNlbGVjdGVkVGV4dHVyZSkgewotICAgICAgICBz
ZWxlY3RlZFRleHR1cmUgPSBjcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIG1fdGV4dHVyZVBvb2wu
YXBwZW5kKHNlbGVjdGVkVGV4dHVyZSk7CisgICAgaWYgKCFzZWxlY3RlZEVudHJ5KSB7CisgICAg
ICAgIG1fdGV4dHVyZXMuYXBwZW5kKEJpdG1hcFRleHR1cmVQb29sRW50cnkodGV4dHVyZU1hcHBl
ci0+Y3JlYXRlVGV4dHVyZSgpKSk7CisgICAgICAgIHNlbGVjdGVkRW50cnkgPSAmbV90ZXh0dXJl
cy5sYXN0KCk7CiAgICAgfQogCisgICAgc2VsZWN0ZWRFbnRyeS0+dXNlKCk7CisgICAgcmV0dXJu
IHNlbGVjdGVkRW50cnktPm1fdGV4dHVyZTsKK30KKworUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJl
PiBUZXh0dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnN0IEludFNpemUmIHNp
emUpCit7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHNlbGVjdGVkVGV4dHVyZSA9IG1fdGV4
dHVyZVBvb2wtPmFjcXVpcmVUZXh0dXJlKHNpemUsIHRoaXMpOwogICAgIHNlbGVjdGVkVGV4dHVy
ZS0+cmVzZXQoc2l6ZSwgQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSk7CiAgICAgcmV0dXJu
IHNlbGVjdGVkVGV4dHVyZTsKIH0KQEAgLTU5LDUgKzEwNywyNSBAQCBQYXNzT3duUHRyPFRleHR1
cmVNYXBwZXI+IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG1vZGUpCiAg
ICAgcmV0dXJuIHBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0ZWQoKTsKIH0KIAorVGV4dHVyZU1hcHBl
cjo6VGV4dHVyZU1hcHBlcihBY2NlbGVyYXRpb25Nb2RlIGFjY2VsZXJhdGlvbk1vZGUpCisgICAg
OiBtX2ludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25EZWZhdWx0KQorICAgICwgbV90
ZXh0RHJhd2luZ01vZGUoVGV4dE1vZGVGaWxsKQorICAgICwgbV90ZXh0dXJlUG9vbChhZG9wdFB0
cihuZXcgQml0bWFwVGV4dHVyZVBvb2woKSkpCisgICAgLCBtX2FjY2VsZXJhdGlvbk1vZGUoYWNj
ZWxlcmF0aW9uTW9kZSkKK3sgfQorCitUZXh0dXJlTWFwcGVyOjp+VGV4dHVyZU1hcHBlcigpCit7
IH0KKwordm9pZCBUZXh0dXJlTWFwcGVyOjpiZWdpblBhaW50aW5nKFBhaW50RmxhZ3MpCit7Cisg
ICAgbV90ZXh0dXJlUG9vbC0+YmVnaW5QYWludGluZygpOworfQorCit2b2lkIFRleHR1cmVNYXBw
ZXI6OmVuZFBhaW50aW5nKCkKK3sKKyAgICBtX3RleHR1cmVQb29sLT5yZWxlYXNlVW51c2VkVGV4
dHVyZXMoKTsKK30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAyODJiZjJjYTRkOWI4
N2U0Nzc5YjAyYTQzZmQ3MjFjNDBmMTk3NGU1Li4zNjllMzVmNjVhYWFkMzI5NjNiMjkyODNhNjlh
NjA4ODdjYzRjZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgQml0bWFwVGV4dHVyZVBvb2w7CiBjbGFzcyBUZXh0dXJl
TWFwcGVyOwogCiAvLyBBIDJEIHRleHR1cmUgdGhhdCBjYW4gYmUgdGhlIHRhcmdldCBvZiBzb2Z0
d2FyZSBvciBHTCByZW5kZXJpbmcuCkBAIC0xMTUsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHR5
cGVkZWYgdW5zaWduZWQgUGFpbnRGbGFnczsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHR1
cmVNYXBwZXI+IGNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG5ld01vZGUgPSBTb2Z0d2FyZU1vZGUp
OwotICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5UZXh0dXJl
TWFwcGVyKCk7CiAKICAgICBlbnVtIEV4cG9zZWRFZGdlcyB7CiAgICAgICAgIE5vRWRnZXMgPSAw
LApAQCAtMTQ1LDIwICsxNDYsMTUgQEAgcHVibGljOgogICAgIFRleHREcmF3aW5nTW9kZUZsYWdz
IHRleHREcmF3aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dERyYXdpbmdNb2RlOyB9CiAg
ICAgQWNjZWxlcmF0aW9uTW9kZSBhY2NlbGVyYXRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRpb25Nb2RlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmVnaW5QYWludGluZyhQYWlu
dEZsYWdzID0gMCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGVuZFBhaW50aW5nKCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoUGFpbnRGbGFncyA9IDApOworICAgIHZpcnR1YWwg
dm9pZCBlbmRQYWludGluZygpOwogCiAgICAgdmlydHVhbCBJbnRTaXplIG1heFRleHR1cmVTaXpl
KCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShJTlRfTUFYLCBJTlRfTUFYKTsgfQogCi0gICAgLy8g
QSBzdXJmYWNlIGlzIHJlbGVhc2VkIGltcGxpY2l0bHkgd2hlbiBkZXJlZmVyZW5jZWQuCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFjcXVpcmVUZXh0dXJlRnJvbVBvb2wo
Y29uc3QgSW50U2l6ZSYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgVGV4dHVyZU1hcHBlcihBY2NlbGVy
YXRpb25Nb2RlIGFjY2VsZXJhdGlvbk1vZGUpCi0gICAgICAgIDogbV9pbnRlcnBvbGF0aW9uUXVh
bGl0eShJbnRlcnBvbGF0aW9uRGVmYXVsdCkKLSAgICAgICAgLCBtX3RleHREcmF3aW5nTW9kZShU
ZXh0TW9kZUZpbGwpCi0gICAgICAgICwgbV9hY2NlbGVyYXRpb25Nb2RlKGFjY2VsZXJhdGlvbk1v
ZGUpCi0gICAge30KKyAgICBUZXh0dXJlTWFwcGVyKEFjY2VsZXJhdGlvbk1vZGUpOwogCiBwcml2
YXRlOgogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKQEAgLTE3MSw3ICsxNjcsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgbV9pbnRlcnBvbGF0aW9uUXVh
bGl0eTsKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyBtX3RleHREcmF3aW5nTW9kZTsKLSAgICBW
ZWN0b3I8UmVmUHRyPEJpdG1hcFRleHR1cmU+ID4gbV90ZXh0dXJlUG9vbDsKKyAgICBPd25QdHI8
Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVyZVBvb2w7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBt
X2NvbnRleHQ7CiAgICAgQWNjZWxlcmF0aW9uTW9kZSBtX2FjY2VsZXJhdGlvbk1vZGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCBiNjQyNDQyYjc4YjdlYjhhNWUyZmI5YThmYmNmOTRi
YzAxMmQyYWQ0Li5hNTE1YTY1MDI4YWY3ODAwNDI4YTE1YWYyYTg3MDQ0MWFjYjBmNWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMjM0LDEwICsyMzQsMTQgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyR0w6OmJlZ2luUGFpbnRpbmcoUGFpbnRGbGFncyBmbGFncykKICAgICBtX2NvbnRleHQzRC0+
Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkcsICZkYXRh
KCkudGFyZ2V0RnJhbWVCdWZmZXIpOwogICAgIGRhdGEoKS5QYWludEZsYWdzID0gZmxhZ3M7CiAg
ICAgYmluZFN1cmZhY2UoMCk7CisKKyAgICBUZXh0dXJlTWFwcGVyOjpiZWdpblBhaW50aW5nKGZs
YWdzKTsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmVuZFBhaW50aW5nKCkKIHsKKyAgICBU
ZXh0dXJlTWFwcGVyOjplbmRQYWludGluZygpOworCiAgICAgaWYgKGRhdGEoKS5kaWRNb2RpZnlT
dGVuY2lsKSB7CiAgICAgICAgIG1fY29udGV4dDNELT5jbGVhclN0ZW5jaWwoMSk7CiAgICAgICAg
IG1fY29udGV4dDNELT5jbGVhcihHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklU
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171326</attachid>
            <date>2012-10-29 15:39:32 -0700</date>
            <delta_ts>2012-10-30 19:50:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100706-20121030073726.patch</filename>
            <type>text/plain</type>
            <size>9105</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZmYzZkMjY1MmIyZGEw
OTQzZDNiOGEyN2M5ZGJlNGFjNTA1MzUyNC4uOTQ1ZjYxNjBhODQwZDlkZGY0YWNjYmMwZTE3M2Jj
M2FjOTQ3MzFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEwLTI5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFJlbW92ZSBlbnRyaWVzIGluIHRoZSB0ZXh0dXJlIHBvb2wgYnkgdGhlIExSVSBvcmRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDcwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHks
IHdlIGRpZCBub3QgcmVtb3ZlIGVudHJpZXMgaW4gdGhlIHRleHR1cmUgcG9vbCBvZiBUZXh0dXJl
TWFwcGVyLiBUaGUKKyAgICAgICAgdGV4dHVyZSBwb29sIGlzIGRlc3Ryb3llZCB3aGVuIFRleHR1
cmVNYXBwZXIgaXMgZGVzdHJveWVkLiBJdCBtZWFucyB0aGUgdGV4dHVyZQorICAgICAgICBwb29s
IGNvbnN1bWVkIHRleHR1cmUgbWVtb3J5IHVudGlsIGl0cyBkZXN0cnVjdGlvbi4gVGhpcyBwYXRj
aCByZW1vdmVzIGVudHJpZXMKKyAgICAgICAgb24gZW5kUGFpbnRpbmcoKSBpZiB0aGUgZW50cmll
cyB3ZXJlIHVudXNlZCBpbiB0aGlzIGZyYW1lOiBiZXR3ZWVuCisgICAgICAgIHN0YXJ0UGFpbnRp
bmcoKSBhbmQgZW5kUGFpbnRpbmcoKS4KKworICAgICAgICBDaGFuZ2luZyBjYWNoZSBwb2xpY3kg
aXMgbm90IHRlc3RhYmxlZCBpbiBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBUZXh0dXJlUG9vbEVudHJ5OjpCaXRtYXBUZXh0dXJlUG9vbEVudHJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVQb29sRW50cnk6OnVzZSk6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlUG9vbEVudHJ5Ojpjb21wYXJlTFJVKToKKyAgICAgICAgKEJpdG1hcFRleHR1
cmVQb29sRW50cnkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChCaXRtYXBUZXh0dXJl
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlUG9vbDo6YmVnaW5QYWludGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlUG9vbDo6cmVsZWFzZVVudXNlZFRl
eHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjphY3F1aXJlVGV4
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZy
b21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlRleHR1cmVNYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6flRleHR1cmVNYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6YmVnaW5QYWludGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjplbmRQYWludGluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoVGV4dHVyZU1hcHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6
OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjplbmRQ
YWludGluZyk6CisKIDIwMTItMTAtMjggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFu
eTEwMC5uZXQ+CiAKICAgICAgICAgW1RleE1hcF0gTWFrZSBHcmFwaGljc0xheWVyQW5pbWF0aW9u
IGNob29zZSBhIHByb3BlciB0aW1pbmcgZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKaW5kZXgg
Y2VlNDViOTY5MDliMThiZGQxYzIwZmExYmNkNjBkMjM0NDhlZmIzNi4uYjg0NzgzMTBlYjM4ZTA0
NWU1ZGUyMTUzMjNhZGJhZjBiODgzMWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcApAQCAtMjEsMzMg
KzIxLDgzIEBACiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgogCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5j
bHVkZSA8d3RmL05vbkNvcHlpbmdTb3J0Lmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXI6OmFjcXVpcmVUZXh0dXJlRnJv
bVBvb2woY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3N0cnVjdCBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5
IHsKKyAgICBleHBsaWNpdCBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5KFBhc3NSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gdGV4dHVyZSkKKyAgICAgICAgOiBtX3RleHR1cmUodGV4dHVyZSkKKyAgICB7Cisg
ICAgfQorICAgIGlubGluZSB2b2lkIHVzZSgpIHsgbV90aW1lT2ZMUlUgPSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIGlubGluZSBzdGF0aWMgYm9vbCBjb21wYXJlTFJVKGNv
bnN0IEJpdG1hcFRleHR1cmVQb29sRW50cnkmIGEsIGNvbnN0IEJpdG1hcFRleHR1cmVQb29sRW50
cnkmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5tX3RpbWVPZkxSVSAtIGIubV90aW1lT2ZM
UlUgPiAwOworICAgIH0KKworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7Cisg
ICAgZG91YmxlIG1fdGltZU9mTFJVOworfTsKKworc3RydWN0IEJpdG1hcFRleHR1cmVQb29sIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBQYXNzUmVmUHRyPEJp
dG1hcFRleHR1cmU+IGFjcXVpcmVUZXh0dXJlKGNvbnN0IEludFNpemUmLCBUZXh0dXJlTWFwcGVy
Kik7CisgICAgdm9pZCBiZWdpblBhaW50aW5nKCkgeyBtX3RpbWVUb1N0YXJ0UGFpbnRpbmcgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZvaWQgcmVsZWFzZVVudXNlZFRl
eHR1cmVzKCk7CisKKyAgICBWZWN0b3I8Qml0bWFwVGV4dHVyZVBvb2xFbnRyeT4gbV90ZXh0dXJl
czsKKyAgICBkb3VibGUgbV90aW1lVG9TdGFydFBhaW50aW5nOworfTsKKwordm9pZCBCaXRtYXBU
ZXh0dXJlUG9vbDo6cmVsZWFzZVVudXNlZFRleHR1cmVzKCkKIHsKLSAgICBSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gc2VsZWN0ZWRUZXh0dXJlOworICAgIGlmIChtX3RleHR1cmVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRGVsZXRlIGVudHJpZXMsIHdoaWNoIHdlcmUgdW51
c2VkIGluIHRoaXMgZnJhbWUuCisgICAgbm9uQ29weWluZ1NvcnQobV90ZXh0dXJlcy5iZWdpbigp
LCBtX3RleHR1cmVzLmVuZCgpLCBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5Ojpjb21wYXJlTFJVKTsK
KworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0dXJlcy5zaXplKCk7ICsraSkgewor
ICAgICAgICBpZiAobV90ZXh0dXJlc1tpXS5tX3RpbWVPZkxSVSA8IG1fdGltZVRvU3RhcnRQYWlu
dGluZykgeworICAgICAgICAgICAgbV90ZXh0dXJlcy5yZW1vdmUoaSwgbV90ZXh0dXJlcy5zaXpl
KCkgLSBpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQogCi0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHR1cmVQb29sLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiYgdGV4dHVyZSA9IG1fdGV4dHVyZVBvb2xbaV07CitQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVQb29sOjphY3F1aXJlVGV4dHVy
ZShjb25zdCBJbnRTaXplJiBzaXplLCBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQorewor
ICAgIEJpdG1hcFRleHR1cmVQb29sRW50cnkqIHNlbGVjdGVkRW50cnkgPSAwOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0dXJlcy5zaXplKCk7ICsraSkgeworICAgICAgICBCaXRt
YXBUZXh0dXJlUG9vbEVudHJ5KiBlbnRyeSA9ICZtX3RleHR1cmVzW2ldOwogCi0gICAgICAgIC8v
IElmIHRoZSBzdXJmYWNlIGhhcyBvbmx5IG9uZSByZWZlcmVuY2UgKHRoZSBvbmUgaW4gbV90ZXh0
dXJlUG9vbCksIHdlIGNhbiBzYWZlbHkgcmV1c2UgaXQuCi0gICAgICAgIGlmICh0ZXh0dXJlLT5y
ZWZDb3VudCgpID4gMSkKKyAgICAgICAgLy8gSWYgdGhlIHN1cmZhY2UgaGFzIG9ubHkgb25lIHJl
ZmVyZW5jZSAodGhlIG9uZSBpbiBtX3RleHR1cmVzKSwgd2UgY2FuIHNhZmVseSByZXVzZSBpdC4K
KyAgICAgICAgaWYgKGVudHJ5LT5tX3RleHR1cmUtPnJlZkNvdW50KCkgPiAxKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKHRleHR1cmUtPmNhblJldXNlV2l0aChzaXplKSkg
ewotICAgICAgICAgICAgc2VsZWN0ZWRUZXh0dXJlID0gdGV4dHVyZTsKKyAgICAgICAgaWYgKGVu
dHJ5LT5tX3RleHR1cmUtPmNhblJldXNlV2l0aChzaXplKSkgeworICAgICAgICAgICAgc2VsZWN0
ZWRFbnRyeSA9IGVudHJ5OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBpZiAoIXNlbGVjdGVkVGV4dHVyZSkgewotICAgICAgICBzZWxlY3RlZFRleHR1cmUgPSBj
cmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIG1fdGV4dHVyZVBvb2wuYXBwZW5kKHNlbGVjdGVkVGV4
dHVyZSk7CisgICAgaWYgKCFzZWxlY3RlZEVudHJ5KSB7CisgICAgICAgIG1fdGV4dHVyZXMuYXBw
ZW5kKEJpdG1hcFRleHR1cmVQb29sRW50cnkodGV4dHVyZU1hcHBlci0+Y3JlYXRlVGV4dHVyZSgp
KSk7CisgICAgICAgIHNlbGVjdGVkRW50cnkgPSAmbV90ZXh0dXJlcy5sYXN0KCk7CiAgICAgfQog
CisgICAgc2VsZWN0ZWRFbnRyeS0+dXNlKCk7CisgICAgcmV0dXJuIHNlbGVjdGVkRW50cnktPm1f
dGV4dHVyZTsKK30KKworUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyOjph
Y3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgUmVmUHRy
PEJpdG1hcFRleHR1cmU+IHNlbGVjdGVkVGV4dHVyZSA9IG1fdGV4dHVyZVBvb2wtPmFjcXVpcmVU
ZXh0dXJlKHNpemUsIHRoaXMpOwogICAgIHNlbGVjdGVkVGV4dHVyZS0+cmVzZXQoc2l6ZSwgQml0
bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSk7CiAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dHVyZTsK
IH0KQEAgLTU5LDUgKzEwOSwyNSBAQCBQYXNzT3duUHRyPFRleHR1cmVNYXBwZXI+IFRleHR1cmVN
YXBwZXI6OmNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG1vZGUpCiAgICAgcmV0dXJuIHBsYXRmb3Jt
Q3JlYXRlQWNjZWxlcmF0ZWQoKTsKIH0KIAorVGV4dHVyZU1hcHBlcjo6VGV4dHVyZU1hcHBlcihB
Y2NlbGVyYXRpb25Nb2RlIGFjY2VsZXJhdGlvbk1vZGUpCisgICAgOiBtX2ludGVycG9sYXRpb25R
dWFsaXR5KEludGVycG9sYXRpb25EZWZhdWx0KQorICAgICwgbV90ZXh0RHJhd2luZ01vZGUoVGV4
dE1vZGVGaWxsKQorICAgICwgbV90ZXh0dXJlUG9vbChhZG9wdFB0cihuZXcgQml0bWFwVGV4dHVy
ZVBvb2woKSkpCisgICAgLCBtX2FjY2VsZXJhdGlvbk1vZGUoYWNjZWxlcmF0aW9uTW9kZSkKK3sg
fQorCitUZXh0dXJlTWFwcGVyOjp+VGV4dHVyZU1hcHBlcigpCit7IH0KKwordm9pZCBUZXh0dXJl
TWFwcGVyOjpiZWdpblBhaW50aW5nKFBhaW50RmxhZ3MpCit7CisgICAgbV90ZXh0dXJlUG9vbC0+
YmVnaW5QYWludGluZygpOworfQorCit2b2lkIFRleHR1cmVNYXBwZXI6OmVuZFBhaW50aW5nKCkK
K3sKKyAgICBtX3RleHR1cmVQb29sLT5yZWxlYXNlVW51c2VkVGV4dHVyZXMoKTsKK30KKwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAyODJiZjJjYTRkOWI4N2U0Nzc5YjAyYTQzZmQ3MjFj
NDBmMTk3NGU1Li4zNjllMzVmNjVhYWFkMzI5NjNiMjkyODNhNjlhNjA4ODdjYzRjZTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitz
dHJ1Y3QgQml0bWFwVGV4dHVyZVBvb2w7CiBjbGFzcyBUZXh0dXJlTWFwcGVyOwogCiAvLyBBIDJE
IHRleHR1cmUgdGhhdCBjYW4gYmUgdGhlIHRhcmdldCBvZiBzb2Z0d2FyZSBvciBHTCByZW5kZXJp
bmcuCkBAIC0xMTUsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdW5zaWduZWQgUGFp
bnRGbGFnczsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHR1cmVNYXBwZXI+IGNyZWF0ZShB
Y2NlbGVyYXRpb25Nb2RlIG5ld01vZGUgPSBTb2Z0d2FyZU1vZGUpOwotICAgIHZpcnR1YWwgflRl
eHR1cmVNYXBwZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyKCk7CiAKICAgICBl
bnVtIEV4cG9zZWRFZGdlcyB7CiAgICAgICAgIE5vRWRnZXMgPSAwLApAQCAtMTQ1LDIwICsxNDYs
MTUgQEAgcHVibGljOgogICAgIFRleHREcmF3aW5nTW9kZUZsYWdzIHRleHREcmF3aW5nTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dERyYXdpbmdNb2RlOyB9CiAgICAgQWNjZWxlcmF0aW9uTW9k
ZSBhY2NlbGVyYXRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRpb25Nb2RlOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmVnaW5QYWludGluZyhQYWludEZsYWdzID0gMCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGVuZFBhaW50aW5nKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGJlZ2lu
UGFpbnRpbmcoUGFpbnRGbGFncyA9IDApOworICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludGluZygp
OwogCiAgICAgdmlydHVhbCBJbnRTaXplIG1heFRleHR1cmVTaXplKCkgY29uc3QgeyByZXR1cm4g
SW50U2l6ZShJTlRfTUFYLCBJTlRfTUFYKTsgfQogCi0gICAgLy8gQSBzdXJmYWNlIGlzIHJlbGVh
c2VkIGltcGxpY2l0bHkgd2hlbiBkZXJlZmVyZW5jZWQuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEJpdG1hcFRleHR1cmU+IGFjcXVpcmVUZXh0dXJlRnJvbVBvb2woY29uc3QgSW50U2l6ZSYpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgVGV4dHVyZU1hcHBlcihBY2NlbGVyYXRpb25Nb2RlIGFjY2VsZXJh
dGlvbk1vZGUpCi0gICAgICAgIDogbV9pbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9u
RGVmYXVsdCkKLSAgICAgICAgLCBtX3RleHREcmF3aW5nTW9kZShUZXh0TW9kZUZpbGwpCi0gICAg
ICAgICwgbV9hY2NlbGVyYXRpb25Nb2RlKGFjY2VsZXJhdGlvbk1vZGUpCi0gICAge30KKyAgICBU
ZXh0dXJlTWFwcGVyKEFjY2VsZXJhdGlvbk1vZGUpOwogCiBwcml2YXRlOgogI2lmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKQEAgLTE3MSw3ICsxNjcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAg
SW50ZXJwb2xhdGlvblF1YWxpdHkgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eTsKICAgICBUZXh0RHJh
d2luZ01vZGVGbGFncyBtX3RleHREcmF3aW5nTW9kZTsKLSAgICBWZWN0b3I8UmVmUHRyPEJpdG1h
cFRleHR1cmU+ID4gbV90ZXh0dXJlUG9vbDsKKyAgICBPd25QdHI8Qml0bWFwVGV4dHVyZVBvb2w+
IG1fdGV4dHVyZVBvb2w7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBtX2NvbnRleHQ7CiAgICAgQWNj
ZWxlcmF0aW9uTW9kZSBtX2FjY2VsZXJhdGlvbk1vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cAppbmRleCBiNjQyNDQyYjc4YjdlYjhhNWUyZmI5YThmYmNmOTRiYzAxMmQyYWQ0Li5hNTE1YTY1
MDI4YWY3ODAwNDI4YTE1YWYyYTg3MDQ0MWFjYjBmNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cApAQCAtMjM0LDEwICsyMzQsMTQgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUGFpbnRp
bmcoUGFpbnRGbGFncyBmbGFncykKICAgICBtX2NvbnRleHQzRC0+Z2V0SW50ZWdlcnYoR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkcsICZkYXRhKCkudGFyZ2V0RnJhbWVCdWZm
ZXIpOwogICAgIGRhdGEoKS5QYWludEZsYWdzID0gZmxhZ3M7CiAgICAgYmluZFN1cmZhY2UoMCk7
CisKKyAgICBUZXh0dXJlTWFwcGVyOjpiZWdpblBhaW50aW5nKGZsYWdzKTsKIH0KIAogdm9pZCBU
ZXh0dXJlTWFwcGVyR0w6OmVuZFBhaW50aW5nKCkKIHsKKyAgICBUZXh0dXJlTWFwcGVyOjplbmRQ
YWludGluZygpOworCiAgICAgaWYgKGRhdGEoKS5kaWRNb2RpZnlTdGVuY2lsKSB7CiAgICAgICAg
IG1fY29udGV4dDNELT5jbGVhclN0ZW5jaWwoMSk7CiAgICAgICAgIG1fY29udGV4dDNELT5jbGVh
cihHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171570</attachid>
            <date>2012-10-30 19:50:31 -0700</date>
            <delta_ts>2012-11-02 20:16:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100706-20121031114854.patch</filename>
            <type>text/plain</type>
            <size>8339</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc4MDAyMjUxMTExNDVj
NTMzZTMwZWE2YTQ0NDU1NDYwYWU5Nzg2NC4uZWI3YmE3YjFmOTM0MmNmYWIzZjNjNTM4NDliYmZh
ZGZmNzk1N2NlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEwLTMwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFJlbW92ZSB1bnVzZWQgdGV4dHVyZXMgaW4gdGhlIHRleHR1cmUgcG9vbC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDcwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgd2UgZG8gbm90
IHJlbW92ZSB0ZXh0dXJlcyBpbiB0aGUgdGV4dHVyZSBwb29sIG9mCisgICAgICAgIFRleHR1cmVN
YXBwZXIuIFRoZSB0ZXh0dXJlIHBvb2wgaXMgZGVzdHJveWVkIHdoZW4gVGV4dHVyZU1hcHBlciBp
cworICAgICAgICBkZXN0cm95ZWQuIEl0IG1lYW5zIHRoZSB0ZXh0dXJlIHBvb2wgY29uc3VtZXMg
dGV4dHVyZSBtZW1vcnkgdW50aWwgaXRzCisgICAgICAgIGRlc3RydWN0aW9uLiBUaGlzIHBhdGNo
IHJlbW92ZXMgdGV4dHVyZXMgaWYgdGhlIHRleHR1cmVzIGhhdmUgYmVlbiBub3QKKyAgICAgICAg
dXNlZCBpbiAzIHNlY29uZHMgYXMgTGF5ZXJUcmVlQ29vcmRpbmF0b3IgbWFuYWdlcyBVcGRhdGVB
dGxhc2VzLgorCisgICAgICAgIENoYW5naW5nIGNhY2hlIHBvbGljeSBpcyBub3QgdGVzdGFibGVk
IGluIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sRW50
cnk6OkJpdG1hcFRleHR1cmVQb29sRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZVBvb2xFbnRyeTo6dXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29s
RW50cnk6OmNvbXBhcmVMUlUpOgorICAgICAgICAoQml0bWFwVGV4dHVyZVBvb2xFbnRyeSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEJpdG1hcFRleHR1cmVQb29sKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjpCaXRtYXBUZXh0dXJlUG9vbCk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlUG9vbDo6c2NoZWR1bGVSZWxlYXNlVW51c2VkVGV4dHVy
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVBvb2w6OnJlbGVhc2VVbnVzZWRU
ZXh0dXJlc1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVBvb2w6
OmFjcXVpcmVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OmFjcXVp
cmVUZXh0dXJlRnJvbVBvb2wpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6VGV4
dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjp+VGV4dHVyZU1h
cHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVGV4dHVyZU1hcHBlcik6CisKIDIwMTIt
MTAtMzAgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAK
ICAgICAgICAgRE9NIFVSTCBpcyBmbGFreSB3aGVuIHdvcmtlcnMgYXJlIHVzZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmNwcAppbmRleCBjZWU0NWI5NjkwOWIxOGJkZDFjMjBmYTFiY2Q2MGQyMzQ0OGVmYjM2Li42
N2Y0NDE2Mzg4Njg0NzlmNmYyMzRkYjlhN2E5NDNiZDY0N2Y3NTkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
Y3BwCkBAIC0yMSwzMyArMjEsMTA1IEBACiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgogCiAj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiVGltZXIuaCIK
KyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTm9uQ29weWluZ1Nv
cnQuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVf
TUFQUEVSKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Qml0bWFwVGV4dHVy
ZT4gVGV4dHVyZU1hcHBlcjo6YWNxdWlyZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRTaXplJiBz
aXplKQorc3RydWN0IEJpdG1hcFRleHR1cmVQb29sRW50cnkgeworICAgIGV4cGxpY2l0IEJpdG1h
cFRleHR1cmVQb29sRW50cnkoUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKQorICAg
ICAgICA6IG1fdGV4dHVyZSh0ZXh0dXJlKQorICAgIHsgfQorICAgIGlubGluZSB2b2lkIHVzZSgp
IHsgbV91c2VkVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9CisgICAgaW5s
aW5lIHN0YXRpYyBib29sIGNvbXBhcmVMUlUoY29uc3QgQml0bWFwVGV4dHVyZVBvb2xFbnRyeSYg
YSwgY29uc3QgQml0bWFwVGV4dHVyZVBvb2xFbnRyeSYgYikKKyAgICB7CisgICAgICAgIHJldHVy
biBhLm1fdXNlZFRpbWUgLSBiLm1fdXNlZFRpbWUgPiAwOworICAgIH0KKworICAgIFJlZlB0cjxC
aXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgZG91YmxlIG1fdXNlZFRpbWU7Cit9OworCitj
bGFzcyBCaXRtYXBUZXh0dXJlUG9vbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQml0bWFw
VGV4dHVyZVBvb2wpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IEJpdG1hcFRleHR1cmVQb29sKCk7CisKKyAgICBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFj
cXVpcmVUZXh0dXJlKGNvbnN0IEludFNpemUmLCBUZXh0dXJlTWFwcGVyKik7CisKK3ByaXZhdGU6
CisgICAgdm9pZCBzY2hlZHVsZVJlbGVhc2VVbnVzZWRUZXh0dXJlcygpOworICAgIHZvaWQgcmVs
ZWFzZVVudXNlZFRleHR1cmVzVGltZXJGaXJlZChUaW1lcjxCaXRtYXBUZXh0dXJlUG9vbD4qKTsK
KworICAgIFZlY3RvcjxCaXRtYXBUZXh0dXJlUG9vbEVudHJ5PiBtX3RleHR1cmVzOworICAgIFRp
bWVyPEJpdG1hcFRleHR1cmVQb29sPiBtX3JlbGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVyOworCisg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBzX3JlbGVhc2VVbnVzZWRTZWNvbmRzVG9sZXJhbmNlID0g
MzsKKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNfcmVsZWFzZVVudXNlZFRleHR1cmVzVGltZXJJ
bnRlcnZhbCA9IDAuNTsKK307CisKK0JpdG1hcFRleHR1cmVQb29sOjpCaXRtYXBUZXh0dXJlUG9v
bCgpCisgICAgOiBtX3JlbGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVyKHRoaXMsICZCaXRtYXBUZXh0
dXJlUG9vbDo6cmVsZWFzZVVudXNlZFRleHR1cmVzVGltZXJGaXJlZCkKK3sgfQorCit2b2lkIEJp
dG1hcFRleHR1cmVQb29sOjpzY2hlZHVsZVJlbGVhc2VVbnVzZWRUZXh0dXJlcygpCit7CisgICAg
aWYgKG1fcmVsZWFzZVVudXNlZFRleHR1cmVzVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9y
ZWxlYXNlVW51c2VkVGV4dHVyZXNUaW1lci5zdG9wKCk7CisKKyAgICBtX3JlbGVhc2VVbnVzZWRU
ZXh0dXJlc1RpbWVyLnN0YXJ0T25lU2hvdChzX3JlbGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVySW50
ZXJ2YWwpOworfQorCit2b2lkIEJpdG1hcFRleHR1cmVQb29sOjpyZWxlYXNlVW51c2VkVGV4dHVy
ZXNUaW1lckZpcmVkKFRpbWVyPEJpdG1hcFRleHR1cmVQb29sPiopCiB7Ci0gICAgUmVmUHRyPEJp
dG1hcFRleHR1cmU+IHNlbGVjdGVkVGV4dHVyZTsKKyAgICBpZiAobV90ZXh0dXJlcy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0
dXJlUG9vbC5zaXplKCk7ICsraSkgewotICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4mIHRl
eHR1cmUgPSBtX3RleHR1cmVQb29sW2ldOworICAgIC8vIERlbGV0ZSBlbnRyaWVzLCB3aGljaCBo
YXZlIGJlZW4gdW51c2VkIGluIHNfcmVsZWFzZVVudXNlZFNlY29uZHNUb2xlcmFuY2UuCisgICAg
bm9uQ29weWluZ1NvcnQobV90ZXh0dXJlcy5iZWdpbigpLCBtX3RleHR1cmVzLmVuZCgpLCBCaXRt
YXBUZXh0dXJlUG9vbEVudHJ5Ojpjb21wYXJlTFJVKTsKIAotICAgICAgICAvLyBJZiB0aGUgc3Vy
ZmFjZSBoYXMgb25seSBvbmUgcmVmZXJlbmNlICh0aGUgb25lIGluIG1fdGV4dHVyZVBvb2wpLCB3
ZSBjYW4gc2FmZWx5IHJldXNlIGl0LgotICAgICAgICBpZiAodGV4dHVyZS0+cmVmQ291bnQoKSA+
IDEpCisgICAgZG91YmxlIG1pblVzZWRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkgLSBzX3JlbGVhc2VVbnVzZWRTZWNvbmRzVG9sZXJhbmNlOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV90ZXh0dXJlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV90ZXh0dXJl
c1tpXS5tX3VzZWRUaW1lIDwgbWluVXNlZFRpbWUpIHsKKyAgICAgICAgICAgIG1fdGV4dHVyZXMu
cmVtb3ZlKGksIG1fdGV4dHVyZXMuc2l6ZSgpIC0gaSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KK30KKworUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBCaXRtYXBUZXh0
dXJlUG9vbDo6YWNxdWlyZVRleHR1cmUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGV4dHVyZU1hcHBl
ciogdGV4dHVyZU1hcHBlcikKK3sKKyAgICBCaXRtYXBUZXh0dXJlUG9vbEVudHJ5KiBzZWxlY3Rl
ZEVudHJ5ID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dHVyZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgQml0bWFwVGV4dHVyZVBvb2xFbnRyeSogZW50cnkgPSAmbV90ZXh0
dXJlc1tpXTsKKworICAgICAgICAvLyBJZiB0aGUgc3VyZmFjZSBoYXMgb25seSBvbmUgcmVmZXJl
bmNlICh0aGUgb25lIGluIG1fdGV4dHVyZXMpLCB3ZSBjYW4gc2FmZWx5IHJldXNlIGl0LgorICAg
ICAgICBpZiAoZW50cnktPm1fdGV4dHVyZS0+cmVmQ291bnQoKSA+IDEpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICBpZiAodGV4dHVyZS0+Y2FuUmV1c2VXaXRoKHNpemUpKSB7Ci0g
ICAgICAgICAgICBzZWxlY3RlZFRleHR1cmUgPSB0ZXh0dXJlOworICAgICAgICBpZiAoZW50cnkt
Pm1fdGV4dHVyZS0+Y2FuUmV1c2VXaXRoKHNpemUpKSB7CisgICAgICAgICAgICBzZWxlY3RlZEVu
dHJ5ID0gZW50cnk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmICghc2VsZWN0ZWRUZXh0dXJlKSB7Ci0gICAgICAgIHNlbGVjdGVkVGV4dHVyZSA9IGNyZWF0
ZVRleHR1cmUoKTsKLSAgICAgICAgbV90ZXh0dXJlUG9vbC5hcHBlbmQoc2VsZWN0ZWRUZXh0dXJl
KTsKKyAgICBpZiAoIXNlbGVjdGVkRW50cnkpIHsKKyAgICAgICAgbV90ZXh0dXJlcy5hcHBlbmQo
Qml0bWFwVGV4dHVyZVBvb2xFbnRyeSh0ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCkpKTsK
KyAgICAgICAgc2VsZWN0ZWRFbnRyeSA9ICZtX3RleHR1cmVzLmxhc3QoKTsKICAgICB9CiAKKyAg
ICBzY2hlZHVsZVJlbGVhc2VVbnVzZWRUZXh0dXJlcygpOworICAgIHNlbGVjdGVkRW50cnktPnVz
ZSgpOworICAgIHJldHVybiBzZWxlY3RlZEVudHJ5LT5tX3RleHR1cmU7Cit9CisKK1Bhc3NSZWZQ
dHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlcjo6YWNxdWlyZVRleHR1cmVGcm9tUG9vbChj
b25zdCBJbnRTaXplJiBzaXplKQoreworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzZWxlY3Rl
ZFRleHR1cmUgPSBtX3RleHR1cmVQb29sLT5hY3F1aXJlVGV4dHVyZShzaXplLCB0aGlzKTsKICAg
ICBzZWxlY3RlZFRleHR1cmUtPnJlc2V0KHNpemUsIEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxw
aGEpOwogICAgIHJldHVybiBzZWxlY3RlZFRleHR1cmU7CiB9CkBAIC01OSw1ICsxMzEsMTUgQEAg
UGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpjcmVhdGUoQWNjZWxlcmF0
aW9uTW9kZSBtb2RlKQogICAgIHJldHVybiBwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCk7CiB9
CiAKK1RleHR1cmVNYXBwZXI6OlRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSBhY2NlbGVy
YXRpb25Nb2RlKQorICAgIDogbV9pbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uRGVm
YXVsdCkKKyAgICAsIG1fdGV4dERyYXdpbmdNb2RlKFRleHRNb2RlRmlsbCkKKyAgICAsIG1fdGV4
dHVyZVBvb2woYWRvcHRQdHIobmV3IEJpdG1hcFRleHR1cmVQb29sKCkpKQorICAgICwgbV9hY2Nl
bGVyYXRpb25Nb2RlKGFjY2VsZXJhdGlvbk1vZGUpCit7IH0KKworVGV4dHVyZU1hcHBlcjo6flRl
eHR1cmVNYXBwZXIoKQoreyB9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXggMjgyYmYy
Y2E0ZDliODdlNDc3OWIwMmE0M2ZkNzIxYzQwZjE5NzRlNS4uMjY5M2Q5YWQ5YWI4MDU2YzM4OTVi
NDA1ZTUxNjQ3ZjgyZTk0NzQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC00Nyw2ICs0Nyw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQml0bWFwVGV4dHVyZVBvb2w7CiBjbGFzcyBU
ZXh0dXJlTWFwcGVyOwogCiAvLyBBIDJEIHRleHR1cmUgdGhhdCBjYW4gYmUgdGhlIHRhcmdldCBv
ZiBzb2Z0d2FyZSBvciBHTCByZW5kZXJpbmcuCkBAIC0xMTUsNyArMTE2LDcgQEAgcHVibGljOgog
ICAgIHR5cGVkZWYgdW5zaWduZWQgUGFpbnRGbGFnczsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRy
PFRleHR1cmVNYXBwZXI+IGNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG5ld01vZGUgPSBTb2Z0d2Fy
ZU1vZGUpOwotICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5U
ZXh0dXJlTWFwcGVyKCk7CiAKICAgICBlbnVtIEV4cG9zZWRFZGdlcyB7CiAgICAgICAgIE5vRWRn
ZXMgPSAwLApAQCAtMTUwLDE1ICsxNTEsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBJbnRT
aXplIG1heFRleHR1cmVTaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShJTlRfTUFYLCBJTlRf
TUFYKTsgfQogCi0gICAgLy8gQSBzdXJmYWNlIGlzIHJlbGVhc2VkIGltcGxpY2l0bHkgd2hlbiBk
ZXJlZmVyZW5jZWQuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFjcXVp
cmVUZXh0dXJlRnJvbVBvb2woY29uc3QgSW50U2l6ZSYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgVGV4
dHVyZU1hcHBlcihBY2NlbGVyYXRpb25Nb2RlIGFjY2VsZXJhdGlvbk1vZGUpCi0gICAgICAgIDog
bV9pbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uRGVmYXVsdCkKLSAgICAgICAgLCBt
X3RleHREcmF3aW5nTW9kZShUZXh0TW9kZUZpbGwpCi0gICAgICAgICwgbV9hY2NlbGVyYXRpb25N
b2RlKGFjY2VsZXJhdGlvbk1vZGUpCi0gICAge30KKyAgICBUZXh0dXJlTWFwcGVyKEFjY2VsZXJh
dGlvbk1vZGUpOwogCiBwcml2YXRlOgogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKQEAgLTE3
MSw3ICsxNjcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkg
bV9pbnRlcnBvbGF0aW9uUXVhbGl0eTsKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyBtX3RleHRE
cmF3aW5nTW9kZTsKLSAgICBWZWN0b3I8UmVmUHRyPEJpdG1hcFRleHR1cmU+ID4gbV90ZXh0dXJl
UG9vbDsKKyAgICBPd25QdHI8Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVyZVBvb2w7CiAgICAg
R3JhcGhpY3NDb250ZXh0KiBtX2NvbnRleHQ7CiAgICAgQWNjZWxlcmF0aW9uTW9kZSBtX2FjY2Vs
ZXJhdGlvbk1vZGU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172199</attachid>
            <date>2012-11-02 20:16:18 -0700</date>
            <delta_ts>2012-11-06 07:12:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100706-20121103121427.patch</filename>
            <type>text/plain</type>
            <size>8382</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkZGZkMDc5NTE0ZTEx
Njg1ZTFiODU1YzllNGM0MzAxZjIwOGUyYy4uMmIwMjViYmJiYTJmMmQxNjc3NGQ3NzU5MDUzMThi
OWViMWZiZTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTExLTAyICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFJlbW92ZSB1bnVzZWQgdGV4dHVyZXMgaW4gdGhlIHRleHR1cmUgcG9vbC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDcwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgd2UgZG8gbm90
IHJlbW92ZSB0ZXh0dXJlcyBpbiB0aGUgdGV4dHVyZSBwb29sIG9mCisgICAgICAgIFRleHR1cmVN
YXBwZXIuIFRoZSB0ZXh0dXJlIHBvb2wgaXMgZGVzdHJveWVkIHdoZW4gVGV4dHVyZU1hcHBlciBp
cworICAgICAgICBkZXN0cm95ZWQuIEl0IG1lYW5zIHRoZSB0ZXh0dXJlIHBvb2wgY29uc3VtZXMg
dGV4dHVyZSBtZW1vcnkgdW50aWwgaXRzCisgICAgICAgIGRlc3RydWN0aW9uLiBUaGlzIHBhdGNo
IHJlbW92ZXMgdGV4dHVyZXMgaWYgdGhlIHRleHR1cmVzIGhhdmUgYmVlbiBub3QKKyAgICAgICAg
dXNlZCBpbiAzIHNlY29uZHMgYXMgTGF5ZXJUcmVlQ29vcmRpbmF0b3IgbWFuYWdlcyBVcGRhdGVB
dGxhc2VzLgorCisgICAgICAgIENoYW5naW5nIGNhY2hlIHBvbGljeSBpcyBub3QgdGVzdGFibGUg
aW4gbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVBvb2xFbnRy
eTo6Qml0bWFwVGV4dHVyZVBvb2xFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0
dXJlUG9vbEVudHJ5OjptYXJrVXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
UG9vbEVudHJ5Ojpjb21wYXJlVGltZUxhc3RVc2VkKToKKyAgICAgICAgKEJpdG1hcFRleHR1cmVQ
b29sRW50cnkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChCaXRtYXBUZXh0dXJlUG9v
bCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlUG9vbDo6Qml0bWFwVGV4dHVyZVBv
b2wpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVBvb2w6OnNjaGVkdWxlUmVsZWFz
ZVVudXNlZFRleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjpy
ZWxlYXNlVW51c2VkVGV4dHVyZXNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cFRleHR1cmVQb29sOjphY3F1aXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXI6OlRleHR1cmVNYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
cjo6flRleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFRleHR1cmVNYXBw
ZXIpOgorCiAyMDEyLTExLTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMzMzc1LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXIuY3BwCmluZGV4IGNlZTQ1Yjk2OTA5YjE4YmRkMWMyMGZhMWJjZDYwZDIzNDQ4ZWZiMzYu
LmNiMWJkODYyMWQ2ZDFhMGY1MmVlNjk2NDk5NjdhNTI0NDdhMDQ4ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5jcHAKQEAgLTIxLDMzICsyMSwxMDUgQEAKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJUaW1lci5o
IgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25Db3B5aW5n
U29ydC5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVIpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBUZXh0dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnN0IEludFNpemUm
IHNpemUpCitzdHJ1Y3QgQml0bWFwVGV4dHVyZVBvb2xFbnRyeSB7CisgICAgZXhwbGljaXQgQml0
bWFwVGV4dHVyZVBvb2xFbnRyeShQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUpCisg
ICAgICAgIDogbV90ZXh0dXJlKHRleHR1cmUpCisgICAgeyB9CisgICAgaW5saW5lIHZvaWQgbWFy
a1VzZWQoKSB7IG1fdGltZUxhc3RVc2VkID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
IH0KKyAgICBzdGF0aWMgYm9vbCBjb21wYXJlVGltZUxhc3RVc2VkKGNvbnN0IEJpdG1hcFRleHR1
cmVQb29sRW50cnkmIGEsIGNvbnN0IEJpdG1hcFRleHR1cmVQb29sRW50cnkmIGIpCisgICAgewor
ICAgICAgICByZXR1cm4gYS5tX3RpbWVMYXN0VXNlZCAtIGIubV90aW1lTGFzdFVzZWQgPiAwOwor
ICAgIH0KKworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgZG91Ymxl
IG1fdGltZUxhc3RVc2VkOworfTsKKworY2xhc3MgQml0bWFwVGV4dHVyZVBvb2wgeworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEJpdG1hcFRleHR1cmVQb29sKTsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBCaXRtYXBUZXh0dXJlUG9vbCgpOworCisgICAgUGFz
c1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBhY3F1aXJlVGV4dHVyZShjb25zdCBJbnRTaXplJiwgVGV4
dHVyZU1hcHBlciopOworCitwcml2YXRlOgorICAgIHZvaWQgc2NoZWR1bGVSZWxlYXNlVW51c2Vk
VGV4dHVyZXMoKTsKKyAgICB2b2lkIHJlbGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVyRmlyZWQoVGlt
ZXI8Qml0bWFwVGV4dHVyZVBvb2w+Kik7CisKKyAgICBWZWN0b3I8Qml0bWFwVGV4dHVyZVBvb2xF
bnRyeT4gbV90ZXh0dXJlczsKKyAgICBUaW1lcjxCaXRtYXBUZXh0dXJlUG9vbD4gbV9yZWxlYXNl
VW51c2VkVGV4dHVyZXNUaW1lcjsKKworICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc19yZWxlYXNl
VW51c2VkU2Vjb25kc1RvbGVyYW5jZSA9IDM7CisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBzX3Jl
bGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVySW50ZXJ2YWwgPSAwLjU7Cit9OworCitCaXRtYXBUZXh0
dXJlUG9vbDo6Qml0bWFwVGV4dHVyZVBvb2woKQorICAgIDogbV9yZWxlYXNlVW51c2VkVGV4dHVy
ZXNUaW1lcih0aGlzLCAmQml0bWFwVGV4dHVyZVBvb2w6OnJlbGVhc2VVbnVzZWRUZXh0dXJlc1Rp
bWVyRmlyZWQpCit7IH0KKwordm9pZCBCaXRtYXBUZXh0dXJlUG9vbDo6c2NoZWR1bGVSZWxlYXNl
VW51c2VkVGV4dHVyZXMoKQoreworICAgIGlmIChtX3JlbGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgIG1fcmVsZWFzZVVudXNlZFRleHR1cmVzVGltZXIuc3RvcCgp
OworCisgICAgbV9yZWxlYXNlVW51c2VkVGV4dHVyZXNUaW1lci5zdGFydE9uZVNob3Qoc19yZWxl
YXNlVW51c2VkVGV4dHVyZXNUaW1lckludGVydmFsKTsKK30KKwordm9pZCBCaXRtYXBUZXh0dXJl
UG9vbDo6cmVsZWFzZVVudXNlZFRleHR1cmVzVGltZXJGaXJlZChUaW1lcjxCaXRtYXBUZXh0dXJl
UG9vbD4qKQogewotICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzZWxlY3RlZFRleHR1cmU7Cisg
ICAgaWYgKG1fdGV4dHVyZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dHVyZVBvb2wuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
UmVmUHRyPEJpdG1hcFRleHR1cmU+JiB0ZXh0dXJlID0gbV90ZXh0dXJlUG9vbFtpXTsKKyAgICAv
LyBEZWxldGUgZW50cmllcywgd2hpY2ggaGF2ZSBiZWVuIHVudXNlZCBpbiBzX3JlbGVhc2VVbnVz
ZWRTZWNvbmRzVG9sZXJhbmNlLgorICAgIG5vbkNvcHlpbmdTb3J0KG1fdGV4dHVyZXMuYmVnaW4o
KSwgbV90ZXh0dXJlcy5lbmQoKSwgQml0bWFwVGV4dHVyZVBvb2xFbnRyeTo6Y29tcGFyZVRpbWVM
YXN0VXNlZCk7CiAKLSAgICAgICAgLy8gSWYgdGhlIHN1cmZhY2UgaGFzIG9ubHkgb25lIHJlZmVy
ZW5jZSAodGhlIG9uZSBpbiBtX3RleHR1cmVQb29sKSwgd2UgY2FuIHNhZmVseSByZXVzZSBpdC4K
LSAgICAgICAgaWYgKHRleHR1cmUtPnJlZkNvdW50KCkgPiAxKQorICAgIGRvdWJsZSBtaW5Vc2Vk
VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc19yZWxlYXNlVW51c2VkU2Vj
b25kc1RvbGVyYW5jZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dHVyZXMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fdGV4dHVyZXNbaV0ubV90aW1lTGFzdFVzZWQgPCBt
aW5Vc2VkVGltZSkgeworICAgICAgICAgICAgbV90ZXh0dXJlcy5yZW1vdmUoaSwgbV90ZXh0dXJl
cy5zaXplKCkgLSBpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQor
CitQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVQb29sOjphY3F1aXJlVGV4
dHVyZShjb25zdCBJbnRTaXplJiBzaXplLCBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQor
eworICAgIEJpdG1hcFRleHR1cmVQb29sRW50cnkqIHNlbGVjdGVkRW50cnkgPSAwOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0dXJlcy5zaXplKCk7ICsraSkgeworICAgICAgICBC
aXRtYXBUZXh0dXJlUG9vbEVudHJ5KiBlbnRyeSA9ICZtX3RleHR1cmVzW2ldOworCisgICAgICAg
IC8vIElmIHRoZSBzdXJmYWNlIGhhcyBvbmx5IG9uZSByZWZlcmVuY2UgKHRoZSBvbmUgaW4gbV90
ZXh0dXJlcyksIHdlIGNhbiBzYWZlbHkgcmV1c2UgaXQuCisgICAgICAgIGlmIChlbnRyeS0+bV90
ZXh0dXJlLT5yZWZDb3VudCgpID4gMSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
IGlmICh0ZXh0dXJlLT5jYW5SZXVzZVdpdGgoc2l6ZSkpIHsKLSAgICAgICAgICAgIHNlbGVjdGVk
VGV4dHVyZSA9IHRleHR1cmU7CisgICAgICAgIGlmIChlbnRyeS0+bV90ZXh0dXJlLT5jYW5SZXVz
ZVdpdGgoc2l6ZSkpIHsKKyAgICAgICAgICAgIHNlbGVjdGVkRW50cnkgPSBlbnRyeTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFzZWxlY3RlZFRleHR1
cmUpIHsKLSAgICAgICAgc2VsZWN0ZWRUZXh0dXJlID0gY3JlYXRlVGV4dHVyZSgpOwotICAgICAg
ICBtX3RleHR1cmVQb29sLmFwcGVuZChzZWxlY3RlZFRleHR1cmUpOworICAgIGlmICghc2VsZWN0
ZWRFbnRyeSkgeworICAgICAgICBtX3RleHR1cmVzLmFwcGVuZChCaXRtYXBUZXh0dXJlUG9vbEVu
dHJ5KHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKSkpOworICAgICAgICBzZWxlY3RlZEVu
dHJ5ID0gJm1fdGV4dHVyZXMubGFzdCgpOwogICAgIH0KIAorICAgIHNjaGVkdWxlUmVsZWFzZVVu
dXNlZFRleHR1cmVzKCk7CisgICAgc2VsZWN0ZWRFbnRyeS0+bWFya1VzZWQoKTsKKyAgICByZXR1
cm4gc2VsZWN0ZWRFbnRyeS0+bV90ZXh0dXJlOworfQorCitQYXNzUmVmUHRyPEJpdG1hcFRleHR1
cmU+IFRleHR1cmVNYXBwZXI6OmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gc2VsZWN0ZWRUZXh0dXJlID0gbV90
ZXh0dXJlUG9vbC0+YWNxdWlyZVRleHR1cmUoc2l6ZSwgdGhpcyk7CiAgICAgc2VsZWN0ZWRUZXh0
dXJlLT5yZXNldChzaXplLCBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhKTsKICAgICByZXR1
cm4gc2VsZWN0ZWRUZXh0dXJlOwogfQpAQCAtNTksNSArMTMxLDE1IEBAIFBhc3NPd25QdHI8VGV4
dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKEFjY2VsZXJhdGlvbk1vZGUgbW9kZSkK
ICAgICByZXR1cm4gcGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpOwogfQogCitUZXh0dXJlTWFw
cGVyOjpUZXh0dXJlTWFwcGVyKEFjY2VsZXJhdGlvbk1vZGUgYWNjZWxlcmF0aW9uTW9kZSkKKyAg
ICA6IG1faW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkRlZmF1bHQpCisgICAgLCBt
X3RleHREcmF3aW5nTW9kZShUZXh0TW9kZUZpbGwpCisgICAgLCBtX3RleHR1cmVQb29sKGFkb3B0
UHRyKG5ldyBCaXRtYXBUZXh0dXJlUG9vbCgpKSkKKyAgICAsIG1fYWNjZWxlcmF0aW9uTW9kZShh
Y2NlbGVyYXRpb25Nb2RlKQoreyB9CisKK1RleHR1cmVNYXBwZXI6On5UZXh0dXJlTWFwcGVyKCkK
K3sgfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCmluZGV4IDI4MmJmMmNhNGQ5Yjg3ZTQ3Nzli
MDJhNDNmZDcyMWM0MGYxOTc0ZTUuLjI2OTNkOWFkOWFiODA1NmMzODk1YjQwNWU1MTY0N2Y4MmU5
NDc0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXIuaApAQCAtNDcsNiArNDcsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIEJpdG1hcFRleHR1cmVQb29sOwogY2xhc3MgVGV4dHVyZU1hcHBlcjsK
IAogLy8gQSAyRCB0ZXh0dXJlIHRoYXQgY2FuIGJlIHRoZSB0YXJnZXQgb2Ygc29mdHdhcmUgb3Ig
R0wgcmVuZGVyaW5nLgpAQCAtMTE1LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHVu
c2lnbmVkIFBhaW50RmxhZ3M7CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxUZXh0dXJlTWFwcGVy
PiBjcmVhdGUoQWNjZWxlcmF0aW9uTW9kZSBuZXdNb2RlID0gU29mdHdhcmVNb2RlKTsKLSAgICB2
aXJ0dWFsIH5UZXh0dXJlTWFwcGVyKCkgeyB9CisgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlcigp
OwogCiAgICAgZW51bSBFeHBvc2VkRWRnZXMgewogICAgICAgICBOb0VkZ2VzID0gMCwKQEAgLTE1
MCwxNSArMTUxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSW50U2l6ZSBtYXhUZXh0dXJl
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUoSU5UX01BWCwgSU5UX01BWCk7IH0KIAotICAg
IC8vIEEgc3VyZmFjZSBpcyByZWxlYXNlZCBpbXBsaWNpdGx5IHdoZW4gZGVyZWZlcmVuY2VkLgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBhY3F1aXJlVGV4dHVyZUZyb21Q
b29sKGNvbnN0IEludFNpemUmKTsKIAogcHJvdGVjdGVkOgotICAgIFRleHR1cmVNYXBwZXIoQWNj
ZWxlcmF0aW9uTW9kZSBhY2NlbGVyYXRpb25Nb2RlKQotICAgICAgICA6IG1faW50ZXJwb2xhdGlv
blF1YWxpdHkoSW50ZXJwb2xhdGlvbkRlZmF1bHQpCi0gICAgICAgICwgbV90ZXh0RHJhd2luZ01v
ZGUoVGV4dE1vZGVGaWxsKQotICAgICAgICAsIG1fYWNjZWxlcmF0aW9uTW9kZShhY2NlbGVyYXRp
b25Nb2RlKQotICAgIHt9CisgICAgVGV4dHVyZU1hcHBlcihBY2NlbGVyYXRpb25Nb2RlKTsKIAog
cHJpdmF0ZToKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xNzEsNyArMTY3LDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1faW50ZXJwb2xhdGlv
blF1YWxpdHk7CiAgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgbV90ZXh0RHJhd2luZ01vZGU7Ci0g
ICAgVmVjdG9yPFJlZlB0cjxCaXRtYXBUZXh0dXJlPiA+IG1fdGV4dHVyZVBvb2w7CisgICAgT3du
UHRyPEJpdG1hcFRleHR1cmVQb29sPiBtX3RleHR1cmVQb29sOwogICAgIEdyYXBoaWNzQ29udGV4
dCogbV9jb250ZXh0OwogICAgIEFjY2VsZXJhdGlvbk1vZGUgbV9hY2NlbGVyYXRpb25Nb2RlOwog
fTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>