<?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>91179</bug_id>
          
          <creation_ts>2012-07-12 18:17:45 -0700</creation_ts>
          <short_desc>[EFL][WK2] WorkQueue::dispatchAfterDelay() doesn&apos;t work properly.</short_desc>
          <delta_ts>2012-09-12 03:19:42 -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>WebKit EFL</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>61838</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Byungwoo Lee">bw80.lee</reporter>
          <assigned_to name="Byungwoo Lee">bw80.lee</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>levin+threading</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>youngtaeck.song</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>668469</commentid>
    <comment_count>0</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-07-12 18:17:45 -0700</bug_when>
    <thetext>Sometimes, when UI Process is crashed, watchdocCallback() function in the ChildProcess.cpp doesn&apos;t triggered.
And found that, WorkQueue::dispatchAfterDelay() function uses ecore timer for getting timer event.

Ecore timer event will be processed by the ecore main loop,
and ecore main loop is in the main run loop, not in the WorkQueue thread.

When the UI Process is crashed, and WebProcess&apos;s ecore main loop is very busy or lockup also,
watchdogCallback() should be called to terminate WebProcess itself.
But WorkQueu::dispatchAfterDelay() uses ecore timer for timer event,
the watchdoc also cannot be trigerred.

The way to get timer event should be changed to use some other way like timerfd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670256</commentid>
    <comment_count>1</comment_count>
      <attachid>152514</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-07-16 05:14:26 -0700</bug_when>
    <thetext>Created attachment 152514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677689</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-24 23:37:18 -0700</bug_when>
    <thetext>It looks I&apos;m not an expert for this patch yet. So, I would like to listen youngtaeck&apos;s opinion about this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692260</commentid>
    <comment_count>3</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-09 23:48:28 -0700</bug_when>
    <thetext>@Youngtaeck: Could you please review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694503</commentid>
    <comment_count>4</comment_count>
      <attachid>158212</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-13 22:13:20 -0700</bug_when>
    <thetext>Created attachment 158212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694510</commentid>
    <comment_count>5</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-13 22:23:41 -0700</bug_when>
    <thetext>Applying offline suggestion from Youngtaeck about dispatching order of TimerWorkItems.
For the exact dispatching order between timer work items, new TimerWorkItem instance will be added to the m_timerWorkItems by order of expiration time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694622</commentid>
    <comment_count>6</comment_count>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-08-14 00:50:54 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=158212&amp;action=review

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:54
&gt; +    if ((timerFileDescriptor = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK)) &lt; 0) {

One TimerWorkItem has one file descriptor. Right? If some system has many open files near system-max, creating timer will fail.
I think it is good that there is no dependency with timer and files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694728</commentid>
    <comment_count>7</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-14 02:53:52 -0700</bug_when>
    <thetext>Ok~ Instead of using file for every timer items, I&apos;ll use the last parameter of select() function(timeout) for expiration of timer items.
Thanks for the comments :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695905</commentid>
    <comment_count>8</comment_count>
      <attachid>158544</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-15 04:15:44 -0700</bug_when>
    <thetext>Created attachment 158544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695966</commentid>
    <comment_count>9</comment_count>
      <attachid>158544</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-15 06:49:07 -0700</bug_when>
    <thetext>Comment on attachment 158544
Patch

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

&gt; Source/WebKit2/ChangeLog:13
&gt; +        For removing the dependency between the dispatchAfterDelay() and ecore

I would add a newline before that last line

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:110
&gt; +    return static_cast&lt;double&gt;(timeValue.tv_sec) + (static_cast&lt;double&gt;(timeValue.tv_usec) / 1000000);

Is it enough to casting one of two operands ?

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:125
&gt; +        timeValue.tv_usec = static_cast&lt;long&gt;((timeOut - timeValue.tv_sec)*1000000);

Add a space around *.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:126
&gt; +    }

Add a newline to here.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:143
&gt; +    for (size_t i = 0; i &lt; timerWorkItems.size(); i++) {

WebKit prefers to use ++i.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:215
&gt; +    size_t position = 0;

Why do you define position variable to here instead of for (...) ?

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:216
&gt; +    for (; position &lt; m_timerWorkItems.size(); position++)

ditto.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:218
&gt; +            break;

Add a newline to here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696056</commentid>
    <comment_count>10</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-15 09:26:13 -0700</bug_when>
    <thetext>(In reply to comment #9)
Thanks for the comments. I&apos;ll apply all those.

&gt; &gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:215
&gt; &gt; +    size_t position = 0;
&gt; 
&gt; Why do you define position variable to here instead of for (...) ?

This variable need to be used out of the for loop block.
If this is defined in the for loop statement, build will be failed.

Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:219
+    m_timerWorkItems.insert(position, timerWorkItem.release());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696062</commentid>
    <comment_count>11</comment_count>
      <attachid>158579</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-15 09:32:56 -0700</bug_when>
    <thetext>Created attachment 158579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704975</commentid>
    <comment_count>12</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-26 22:43:42 -0700</bug_when>
    <thetext>gyuyoung, youngtaeck: review please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706015</commentid>
    <comment_count>13</comment_count>
      <attachid>158579</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-27 19:58:28 -0700</bug_when>
    <thetext>Comment on attachment 158579
Patch

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

This patch is needed to review by youngtaeck first informally.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:151
&gt; +        timerWorkItems[i]-&gt;dispatch();

I think a comment is needed to explain this logic.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:153
&gt; +    }

It looks a new line is needed.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:217
&gt; +    for (; position &lt; m_timerWorkItems.size(); position++)

WebKit prefers to use ++position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707031</commentid>
    <comment_count>14</comment_count>
      <attachid>158579</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-28 19:44:57 -0700</bug_when>
    <thetext>Comment on attachment 158579
Patch

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

&gt;&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:151
&gt;&gt; +        timerWorkItems[i]-&gt;dispatch();
&gt; 
&gt; I think a comment is needed to explain this logic.

Ok~ I&apos;ll add the comment

&gt;&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:153
&gt;&gt; +    }
&gt; 
&gt; It looks a new line is needed.

Ok I&apos;ll apply it

&gt;&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:217
&gt;&gt; +    for (; position &lt; m_timerWorkItems.size(); position++)
&gt; 
&gt; WebKit prefers to use ++position.

Sorry for missing this again. will apply it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707032</commentid>
    <comment_count>15</comment_count>
      <attachid>161120</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-28 19:46:02 -0700</bug_when>
    <thetext>Created attachment 161120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707118</commentid>
    <comment_count>16</comment_count>
      <attachid>161120</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 23:11:01 -0700</bug_when>
    <thetext>Comment on attachment 161120
Patch

Attachment 161120 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13695052

New failing tests:
CCLayerTreeHostTestScrollChildLayer.runMultiThread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709475</commentid>
    <comment_count>17</comment_count>
      <attachid>161659</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-08-31 04:10:10 -0700</bug_when>
    <thetext>Created attachment 161659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713992</commentid>
    <comment_count>18</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-06 18:52:19 -0700</bug_when>
    <thetext>@Youngtaeck: Could you please review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716903</commentid>
    <comment_count>19</comment_count>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-09-11 00:30:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; @Youngtaeck: Could you please review this patch?

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

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:103
&gt; +{

Why don&apos;t you use currentTime() in wtf/currentTime.cpp? It is same with this function.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:120
&gt; +    timeValue.tv_sec = 1;

If timeOut is 0, select() will wait 1 sec.
I think expired timer&apos;s callback have to be called right away.

&gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:156
&gt; +            m_timerWorkItems.insert(position, timerWorkItems[i].release());

Line 151-156 are almost same with line 231-236. Why don&apos;t you use one function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716912</commentid>
    <comment_count>20</comment_count>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-11 00:39:50 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; @Youngtaeck: Could you please review this patch?
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161659&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:103
&gt; &gt; +{
&gt; 
&gt; Why don&apos;t you use currentTime() in wtf/currentTime.cpp? It is same with this function.
Ok I&apos;ll apply it.

&gt; 
&gt; &gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:120
&gt; &gt; +    timeValue.tv_sec = 1;
&gt; 
&gt; If timeOut is 0, select() will wait 1 sec.
&gt; I think expired timer&apos;s callback have to be called right away.
Yes, It&apos;s a terrible mistake. Thanks for pointing it.
Initially I was going to set usec = 1 for this case,
but as we shared in offline, set all 0 will be better.
I&apos;ll fix it.

&gt; 
&gt; &gt; Source/WebKit2/Platform/efl/WorkQueueEfl.cpp:156
&gt; &gt; +            m_timerWorkItems.insert(position, timerWorkItems[i].release());
&gt; 
&gt; Line 151-156 are almost same with line 231-236. Why don&apos;t you use one function?
Ok, I&apos;ll apply it.

Thanks for the review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716972</commentid>
    <comment_count>21</comment_count>
      <attachid>163311</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-11 02:30:11 -0700</bug_when>
    <thetext>Created attachment 163311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718001</commentid>
    <comment_count>22</comment_count>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-09-12 00:38:46 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=163311) [details]
&gt; Patch

LGTM!! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718096</commentid>
    <comment_count>23</comment_count>
      <attachid>163311</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-12 02:35:06 -0700</bug_when>
    <thetext>Comment on attachment 163311
Patch

Set r+ based on informal review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718139</commentid>
    <comment_count>24</comment_count>
      <attachid>163311</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 03:19:36 -0700</bug_when>
    <thetext>Comment on attachment 163311
Patch

Clearing flags on attachment: 163311

Committed r128289: &lt;http://trac.webkit.org/changeset/128289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718140</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 03:19:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152514</attachid>
            <date>2012-07-16 05:14:26 -0700</date>
            <delta_ts>2012-08-13 22:13:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120716211422.patch</filename>
            <type>text/plain</type>
            <size>8963</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzQxZjdlODVlZTc2YzEy
MWRkN2FhZGU3ZmRlMTdlYTBmZTEyNjQwYi4uMWMyYWFmMTg3NzQyNjgxYWVhZGFmNDdhNTkyZTgy
YWNlYzNjOWZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA3LTE2ICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaXRoIFdvcmtRdWV1
ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCksIGEgZnVuY3Rpb24gc2hvdWxkIGJlIGRpc3BhdGNoZWQK
KyAgICAgICAgb24gdGhlIFdvcmtRdWV1ZSB0aHJlYWQgYWZ0ZXIgdGhlIGRlbGF5IHRoYXQgc3Bl
Y2lmaWVkLiBCdXQgYmVjYXVzZSBvZgorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhl
IGRpc3BhdGNoQWZ0ZXJEZWxheSgpIGZ1bmN0aW9uIHRoYXQgdXNlcworICAgICAgICBlY29yZSB0
aW1lciBmb3IgZ2V0dGluZyB0aW1lciBldmVudCwgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgZGlzcGF0
Y2hlZAorICAgICAgICBvbiB0aGUgbWFpbiBydW4gbG9vcC4gKGVjb3JlIHRpbWVyIGlzIGhhbmRs
ZWQgYnkgdGhlIGVjb3JlIG1haW4gbG9vcAorICAgICAgICB3aGljaCBydW5zIG9uIHRoZSBtYWlu
IHJ1biBsb29wLCBub3Qgb24gdGhlIFdvcmtRdWV1ZSB0aHJlYWQpCisgICAgICAgIFRoaXMgcGF0
Y2ggdXNlcyB0aW1lcmZkIHRvIGdldCB0aW1lciBldmVudCwgaW5zdGVhZCBvZiBlY29yZSB0aW1l
ci4KKworICAgICAgICAqIFBsYXRmb3JtL1dvcmtRdWV1ZS5oOgorICAgICAgICAoV29ya1F1ZXVl
KToKKyAgICAgICAgKFRpbWVyV29ya0l0ZW0pOgorICAgICAgICAoV29ya1F1ZXVlOjpUaW1lcldv
cmtJdGVtOjpmdW5jdGlvbik6CisgICAgICAgIChXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06OnRp
bWVyRmlsZURlc2NyaXB0b3IpOgorICAgICAgICAqIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwu
Y3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpjcmVhdGUpOgorICAgICAg
ICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpUaW1lcldvcmtJdGVtKToKKyAgICAgICAgKFdv
cmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6flRpbWVyV29ya0l0ZW0pOgorICAgICAgICAoV29ya1F1
ZXVlOjpUaW1lcldvcmtJdGVtOjpleHBpcmVkKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGVyZm9y
bUZpbGVEZXNjcmlwdG9yV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OnBlcmZvcm1UaW1lckZp
bGVEZXNjcmlwdG9yV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxh
eSk6CisKIDIwMTItMDctMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBtYWtlIGRpc3RjaGVjay4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vV29ya1F1ZXVlLmgKaW5kZXggZDYzMGRjMDI4NTVlNWRhMDk0YjEzZjFmMTUxMzI5
YzJkYjQxNDMwYy4uYTczMTE3YTYxNGQxYjgyYzEwZTM5NmU5ZmZjOTM5Y2U2NWRiZjc5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKQEAgLTE4NSw2ICsxODUsMjIgQEAgcHJpdmF0
ZToKICAgICBIYXNoTWFwPGludCwgVmVjdG9yPEV2ZW50U291cmNlKj4gPiBtX2V2ZW50U291cmNl
czsKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBWZWN0b3I8RXZlbnRTb3VyY2UqPiA+OjppdGVy
YXRvciBFdmVudFNvdXJjZUl0ZXJhdG9yOyAKICNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBjbGFz
cyBUaW1lcldvcmtJdGVtIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRy
PFRpbWVyV29ya0l0ZW0+IGNyZWF0ZShGdW5jdGlvbjx2b2lkKCk+LCBkb3VibGUgZGVsYXkpOwor
ICAgICAgICB+VGltZXJXb3JrSXRlbSgpOworICAgICAgICBib29sIGV4cGlyZWQoZmRfc2V0KiBy
ZWFkRmlsZURlc2NyaXB0b3JTZXQpOworICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9mdW5jdGlvbjsgfQorICAgICAgICBpbnQgdGltZXJGaWxlRGVz
Y3JpcHRvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXJGaWxlRGVzY3JpcHRvcjsgfQorCisgICAg
cHJvdGVjdGVkOgorICAgICAgICBUaW1lcldvcmtJdGVtKEZ1bmN0aW9uPHZvaWQoKT4sIGludCB0
aW1lckZpbGVEZXNjcmlwdG9yKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZ1bmN0aW9uPHZv
aWQoKT4gbV9mdW5jdGlvbjsKKyAgICAgICAgaW50IG1fdGltZXJGaWxlRGVzY3JpcHRvcjsKKyAg
ICB9OworCiAgICAgZmRfc2V0IG1fZmlsZURlc2NyaXB0b3JTZXQ7CiAgICAgaW50IG1fbWF4Rmls
ZURlc2NyaXB0b3I7CiAgICAgaW50IG1fcmVhZEZyb21QaXBlRGVzY3JpcHRvcjsKQEAgLTE5Nywx
MyArMjEzLDE0IEBAIHByaXZhdGU6CiAgICAgaW50IG1fc29ja2V0RGVzY3JpcHRvcjsKICAgICBG
dW5jdGlvbjx2b2lkKCk+IG1fc29ja2V0RXZlbnRIYW5kbGVyOwogCi0gICAgSGFzaE1hcDxpbnQs
IE93blB0cjxFY29yZV9UaW1lcj4gPiBtX3RpbWVyczsKKyAgICBWZWN0b3I8T3duUHRyPFRpbWVy
V29ya0l0ZW0+ID4gbV90aW1lcldvcmtJdGVtczsKKyAgICBNdXRleCBtX3RpbWVyV29ya0l0ZW1z
TG9jazsKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1RocmVhZChjb25zdCBjaGFyKik7CiAgICAg
c3RhdGljIHZvaWQqIHdvcmtRdWV1ZVRocmVhZChXb3JrUXVldWUqKTsKICAgICB2b2lkIHBlcmZv
cm1Xb3JrKCk7CiAgICAgdm9pZCBwZXJmb3JtRmlsZURlc2NyaXB0b3JXb3JrKCk7Ci0gICAgc3Rh
dGljIGJvb2wgdGltZXJGaXJlZCh2b2lkKik7CisgICAgdm9pZCBwZXJmb3JtVGltZXJGaWxlRGVz
Y3JpcHRvcldvcmsoZmRfc2V0KiByZWFkRmlsZURlc2NyaXB0b3JTZXQpOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCmluZGV4IDQx
ZmZlZGY1MzMxYTJhMmVlZmQ2YjhjN2Y0ZjhmYjBiN2NmNDQ2MWIuLjE4Y2YzYzUzYTM4MDJkNTUz
OWVhMThmMDliNTM1OWM5ZTBjOTg1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2Vm
bC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0yMCwyOCArMjAsODUgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXb3JrUXVldWUuaCIKIAorI2luY2x1ZGUgPHN5cy90aW1lcmZkLmg+CiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAotY2xhc3MgVGltZXJXb3JrSXRlbSB7Ci1wdWJs
aWM6Ci0gICAgVGltZXJXb3JrSXRlbShpbnQgdGltZXJJRCwgY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24sIFdvcmtRdWV1ZSogcXVldWUpCi0gICAgICAgIDogbV9mdW5jdGlvbihmdW5j
dGlvbikKLSAgICAgICAgLCBtX3F1ZXVlKHF1ZXVlKQotICAgICAgICAsIG1fdGltZXJJRCh0aW1l
cklEKQotICAgIHsKK1Bhc3NPd25QdHI8V29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtPiBXb3JrUXVl
dWU6OlRpbWVyV29ya0l0ZW06OmNyZWF0ZShGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uLCBkb3Vi
bGUgZGVsYXkpCit7CisgICAgc3RydWN0IGl0aW1lcnNwZWMgdGltZXJWYWx1ZTsKKyAgICBpbnQg
dGltZXJGaWxlRGVzY3JpcHRvcjsKKworICAgIGlmIChkZWxheSA8PSAwKSB7CisgICAgICAgIExP
R19FUlJPUigiZGVsYXkgc2hvdWxkIGJlIHBvc2l0aXZlIik7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIGxvbmcgb2Zmc2V0U2Vjb25kcyA9IHN0YXRpY19jYXN0PGxvbmc+
KGRlbGF5KTsKKyAgICB0aW1lclZhbHVlLml0X3ZhbHVlLnR2X3NlYyA9IG9mZnNldFNlY29uZHM7
CisgICAgdGltZXJWYWx1ZS5pdF92YWx1ZS50dl9uc2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4oKGRl
bGF5IC0gb2Zmc2V0U2Vjb25kcykgKiAxMDAwMDAwMDAwKTsKKyAgICB0aW1lclZhbHVlLml0X2lu
dGVydmFsLnR2X3NlYyA9IDA7CisgICAgdGltZXJWYWx1ZS5pdF9pbnRlcnZhbC50dl9uc2VjID0g
MDsKKworICAgIGlmICgodGltZXJGaWxlRGVzY3JpcHRvciA9IHRpbWVyZmRfY3JlYXRlKENMT0NL
X01PTk9UT05JQywgVEZEX05PTkJMT0NLKSkgPCAwKSB7CisgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSB0aW1lcmZkIik7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
LSAgICB+VGltZXJXb3JrSXRlbSgpIHsgfQogCi0gICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KLSAgICBXb3JrUXVldWUqIHF1ZXVlKCkg
Y29uc3QgeyByZXR1cm4gbV9xdWV1ZTsgfQorICAgIGlmICh0aW1lcmZkX3NldHRpbWUodGltZXJG
aWxlRGVzY3JpcHRvciwgMCwgJnRpbWVyVmFsdWUsIDApID09IC0xKSB7CisgICAgICAgIExPR19F
UlJPUigiRmFpbGVkIHRvIHNldCB0aW1lcmZkKCVkKSIsIHRpbWVyRmlsZURlc2NyaXB0b3IpOwor
ICAgICAgICBjbG9zZSh0aW1lckZpbGVEZXNjcmlwdG9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUaW1lcldvcmtJdGVtKGZ1bmN0
aW9uLCB0aW1lckZpbGVEZXNjcmlwdG9yKSk7Cit9CisKK1dvcmtRdWV1ZTo6VGltZXJXb3JrSXRl
bTo6VGltZXJXb3JrSXRlbShGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uLCBpbnQgdGltZXJGaWxl
RGVzY3JpcHRvcikKKyAgICA6IG1fZnVuY3Rpb24oZnVuY3Rpb24pCisgICAgLCBtX3RpbWVyRmls
ZURlc2NyaXB0b3IodGltZXJGaWxlRGVzY3JpcHRvcikKK3sKK30KIAotICAgIGludCB0aW1lcklE
KCkgY29uc3QgeyByZXR1cm4gbV90aW1lcklEOyB9CitXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06
On5UaW1lcldvcmtJdGVtKCkKK3sKKyAgICBzdHJ1Y3QgaXRpbWVyc3BlYyB0aW1lclZhbHVlOwor
ICAgIHRpbWVyVmFsdWUuaXRfdmFsdWUudHZfc2VjID0gMDsKKyAgICB0aW1lclZhbHVlLml0X3Zh
bHVlLnR2X25zZWMgPSAwOworICAgIHRpbWVyVmFsdWUuaXRfaW50ZXJ2YWwudHZfc2VjID0gMDsK
KyAgICB0aW1lclZhbHVlLml0X2ludGVydmFsLnR2X25zZWMgPSAwOworCisgICAgaWYgKG1fdGlt
ZXJGaWxlRGVzY3JpcHRvciA8IDApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0aW1lcmZk
X3NldHRpbWUobV90aW1lckZpbGVEZXNjcmlwdG9yLCAwLCAmdGltZXJWYWx1ZSwgMCkgPT0gLTEp
CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNsZWFyIHRpbWVyZmQoJWQpIiwgbV90aW1l
ckZpbGVEZXNjcmlwdG9yKTsKKyAgICBjbG9zZShtX3RpbWVyRmlsZURlc2NyaXB0b3IpOworfQog
Ci1wcml2YXRlOgotICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKLSAgICBXb3JrUXVl
dWUqIG1fcXVldWU7Ci0gICAgaW50IG1fdGltZXJJRDsKLX07Citib29sIFdvcmtRdWV1ZTo6VGlt
ZXJXb3JrSXRlbTo6ZXhwaXJlZChmZF9zZXQqIHJlYWRGaWxlRGVzY3JpcHRvclNldCkKK3sKKyAg
ICB1aW50NjRfdCBleHBpcmF0aW9uczsKKyAgICBpbnQgYnl0ZXNSZWFkOworCisgICAgaWYgKCFy
ZWFkRmlsZURlc2NyaXB0b3JTZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICht
X3RpbWVyRmlsZURlc2NyaXB0b3IgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIUZEX0lTU0VUKG1fdGltZXJGaWxlRGVzY3JpcHRvciwgcmVhZEZpbGVEZXNjcmlwdG9yU2V0
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKChieXRlc1JlYWQgPSByZWFkKG1f
dGltZXJGaWxlRGVzY3JpcHRvciwgJmV4cGlyYXRpb25zLCBzaXplb2YodWludDY0X3QpKSkgIT0g
c2l6ZW9mKHVpbnQ2NF90KSkgeworICAgICAgICBpZiAoYnl0ZXNSZWFkICE9IC0xKQorICAgICAg
ICAgICAgTE9HX0VSUk9SKCJ0aW1lcmZkKCVkKSByZWFkIGVycm9yIiwgbV90aW1lckZpbGVEZXNj
cmlwdG9yKTsKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gIT0gRUFHQUlOKQorICAgICAgICAgICAg
TE9HX0VSUk9SKCJ0aW1lcmZkKCVkKSByZWFkIGVycm9yKCVkKSIsIG1fdGltZXJGaWxlRGVzY3Jp
cHRvciwgZXJybm8pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJu
IHRydWU7Cit9CiAKIHN0YXRpYyBjb25zdCBpbnQgaW52YWxpZFNvY2tldERlc2NyaXB0b3IgPSAt
MTsKIHN0YXRpYyBjb25zdCBpbnQgdGhyZWFkTWVzc2FnZVNpemUgPSAxOwpAQCAtMTAyLDcgKzE1
OSwzMiBAQCB2b2lkIFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpCiAKICAg
ICAgICAgaWYgKG1fc29ja2V0RGVzY3JpcHRvciAhPSBpbnZhbGlkU29ja2V0RGVzY3JpcHRvciAm
JiBGRF9JU1NFVChtX3NvY2tldERlc2NyaXB0b3IsICZyZWFkRmlsZURlc2NyaXB0b3JTZXQpKQog
ICAgICAgICAgICAgbV9zb2NrZXRFdmVudEhhbmRsZXIoKTsKKworICAgICAgICBwZXJmb3JtVGlt
ZXJGaWxlRGVzY3JpcHRvcldvcmsoJnJlYWRGaWxlRGVzY3JpcHRvclNldCk7CisgICAgfQorfQor
Cit2b2lkIFdvcmtRdWV1ZTo6cGVyZm9ybVRpbWVyRmlsZURlc2NyaXB0b3JXb3JrKGZkX3NldCog
cmVhZEZpbGVEZXNjcmlwdG9yU2V0KQoreworICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLmxvY2so
KTsKKyAgICB3aGlsZSAoIW1fdGltZXJXb3JrSXRlbXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFZl
Y3RvcjxPd25QdHI8VGltZXJXb3JrSXRlbT4gPiB0aW1lcldvcmtJdGVtczsKKyAgICAgICAgbV90
aW1lcldvcmtJdGVtcy5zd2FwKHRpbWVyV29ya0l0ZW1zKTsKKworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHRpbWVyV29ya0l0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBp
ZiAoIXRpbWVyV29ya0l0ZW1zW2ldLT5leHBpcmVkKHJlYWRGaWxlRGVzY3JpcHRvclNldCkpIHsK
KyAgICAgICAgICAgICAgICBtX3RpbWVyV29ya0l0ZW1zLmFwcGVuZCh0aW1lcldvcmtJdGVtc1tp
XS5yZWxlYXNlKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBGRF9DTFIodGltZXJXb3JrSXRlbXNbaV0tPnRpbWVyRmlsZURlc2NyaXB0
b3IoKSwgJm1fZmlsZURlc2NyaXB0b3JTZXQpOworCisgICAgICAgICAgICBtX3RpbWVyV29ya0l0
ZW1zTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIGRpc3BhdGNoKHRpbWVyV29ya0l0ZW1zW2ld
LT5mdW5jdGlvbigpKTsKKyAgICAgICAgICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLmxvY2soKTsK
KyAgICAgICAgfQogICAgIH0KKyAgICBtX3RpbWVyV29ya0l0ZW1zTG9jay51bmxvY2soKTsKIH0K
IAogdm9pZCBXb3JrUXVldWU6OnNlbmRNZXNzYWdlVG9UaHJlYWQoY29uc3QgY2hhciogbWVzc2Fn
ZSkKQEAgLTE1MywyMSArMjM1LDE0IEBAIHZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaChjb25zdCBG
dW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKICAgICBzZW5kTWVzc2FnZVRvVGhyZWFkKHdha3Vw
VGhyZWFkTWVzc2FnZSk7CiB9CiAKLWJvb2wgV29ya1F1ZXVlOjp0aW1lckZpcmVkKHZvaWQqIGRh
dGEpCi17Ci0gICAgVGltZXJXb3JrSXRlbSogaXRlbSA9IHN0YXRpY19jYXN0PFRpbWVyV29ya0l0
ZW0qPihkYXRhKTsKLSAgICBpZiAoaXRlbSAmJiBpdGVtLT5xdWV1ZSgpLT5tX2lzVmFsaWQpIHsK
LSAgICAgICAgaXRlbS0+cXVldWUoKS0+ZGlzcGF0Y2goaXRlbS0+ZnVuY3Rpb24oKSk7Ci0gICAg
ICAgIGl0ZW0tPnF1ZXVlKCktPm1fdGltZXJzLnRha2UoaXRlbS0+dGltZXJJRCgpKTsKLSAgICAg
ICAgZGVsZXRlIGl0ZW07Ci0gICAgfQotCi0gICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX0NBTkNF
TDsKLX0KLQogdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxheShjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5KQogewotICAgIHN0YXRpYyBpbnQgdGlt
ZXJJZCA9IDE7Ci0gICAgbV90aW1lcnMuc2V0KHRpbWVySWQsIGFkb3B0UHRyKGVjb3JlX3RpbWVy
X2FkZChkZWxheSwgcmVpbnRlcnByZXRfY2FzdDxFY29yZV9UYXNrX0NiPih0aW1lckZpcmVkKSwg
bmV3IFRpbWVyV29ya0l0ZW0odGltZXJJZCwgZnVuY3Rpb24sIHRoaXMpKSkpOwotICAgIHRpbWVy
SWQrKzsKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV93b3JrSXRlbVF1ZXVlTG9jayk7CisgICAg
T3duUHRyPFRpbWVyV29ya0l0ZW0+IHRpbWVyV29ya0l0ZW0gPSBUaW1lcldvcmtJdGVtOjpjcmVh
dGUoZnVuY3Rpb24sIGRlbGF5KTsKKyAgICBpZiAoIXRpbWVyV29ya0l0ZW0pCisgICAgICAgIHJl
dHVybjsKKworICAgIEZEX1NFVCh0aW1lcldvcmtJdGVtLT50aW1lckZpbGVEZXNjcmlwdG9yKCks
ICZtX2ZpbGVEZXNjcmlwdG9yU2V0KTsKKyAgICBtX3RpbWVyV29ya0l0ZW1zLmFwcGVuZCh0aW1l
cldvcmtJdGVtLnJlbGVhc2UoKSk7CisgICAgc2VuZE1lc3NhZ2VUb1RocmVhZCh3YWt1cFRocmVh
ZE1lc3NhZ2UpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158212</attachid>
            <date>2012-08-13 22:13:20 -0700</date>
            <delta_ts>2012-08-15 04:15:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120814141246.patch</filename>
            <type>text/plain</type>
            <size>10170</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDYwNjBjYmY0ZDFiNTVi
NTRlYWVmMGIzYjhlZDRkYzg0ZmRiODBlYi4uZmUwYjM4OTJkNGNjMzk4ODc3NDAyMmRhODkwYmE1
YmUxOGM2OGFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTEzICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaXRoIFdvcmtRdWV1
ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCksIGEgZnVuY3Rpb24gc2hvdWxkIGJlIGRpc3BhdGNoZWQK
KyAgICAgICAgb24gdGhlIFdvcmtRdWV1ZSB0aHJlYWQgYWZ0ZXIgdGhlIGRlbGF5IHRoYXQgc3Bl
Y2lmaWVkLiBCdXQgYmVjYXVzZSBvZgorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhl
IGRpc3BhdGNoQWZ0ZXJEZWxheSgpIGZ1bmN0aW9uIHRoYXQgdXNlcworICAgICAgICBlY29yZSB0
aW1lciBmb3IgZ2V0dGluZyB0aW1lciBldmVudCwgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgZGlzcGF0
Y2hlZAorICAgICAgICBvbiB0aGUgbWFpbiBydW4gbG9vcC4gKGVjb3JlIHRpbWVyIGlzIGhhbmRs
ZWQgYnkgdGhlIGVjb3JlIG1haW4gbG9vcAorICAgICAgICB3aGljaCBydW5zIG9uIHRoZSBtYWlu
IHJ1biBsb29wLCBub3Qgb24gdGhlIFdvcmtRdWV1ZSB0aHJlYWQpCisgICAgICAgIFRoaXMgcGF0
Y2ggdXNlcyB0aW1lcmZkIHRvIGdldCB0aW1lciBldmVudCwgaW5zdGVhZCBvZiBlY29yZSB0aW1l
ci4KKworICAgICAgICAqIFBsYXRmb3JtL1dvcmtRdWV1ZS5oOgorICAgICAgICAoVGltZXJXb3Jr
SXRlbSk6CisgICAgICAgIChXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06OmZ1bmN0aW9uKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6dGltZXJGaWxlRGVzY3JpcHRvcik6Cisg
ICAgICAgIChXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06OmV4cGlyZVRpbWUpOgorICAgICAgICAo
V29ya1F1ZXVlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6Y3JlYXRlKToKKyAgICAgICAgKFdvcmtR
dWV1ZTo6VGltZXJXb3JrSXRlbTo6VGltZXJXb3JrSXRlbSk6CisgICAgICAgIChXb3JrUXVldWU6
OlRpbWVyV29ya0l0ZW06On5UaW1lcldvcmtJdGVtKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6VGlt
ZXJXb3JrSXRlbTo6ZXhwaXJlZCk6CisgICAgICAgIChXb3JrUXVldWU6OnBlcmZvcm1GaWxlRGVz
Y3JpcHRvcldvcmspOgorICAgICAgICAoV29ya1F1ZXVlOjpwZXJmb3JtVGltZXJGaWxlRGVzY3Jp
cHRvcldvcmspOgorICAgICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkpOgorCiAy
MDEyLTA4LTEzICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gcmVsZWFzZSBGcmFtZUxvYWRlckNsaWVudEltcGw6Om1fcGx1Z2luV2lkZ2V0IHJl
ZnB0ciB1cG9uIFBsdWdpbiBEb2N1bWVudCBkZXRhY2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtR
dWV1ZS5oCmluZGV4IDVmZjdkMzljY2NmNDFjZTQ1ODMyNzUzYmY4ZTc5NmI1MjViNDFkMmUuLjNh
MGQxMjI1MWU1NzRlODBlYWUzMzdlNmRmYmQ4ZDZhZGMwMDM1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL1dvcmtRdWV1ZS5oCkBAIC0xODcsNiArMTg3LDIzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1h
cDxpbnQsIFZlY3RvcjxFdmVudFNvdXJjZSo+ID4gbV9ldmVudFNvdXJjZXM7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPGludCwgVmVjdG9yPEV2ZW50U291cmNlKj4gPjo6aXRlcmF0b3IgRXZlbnRTb3Vy
Y2VJdGVyYXRvcjsgCiAjZWxpZiBQTEFURk9STShFRkwpCisgICAgY2xhc3MgVGltZXJXb3JrSXRl
bSB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxUaW1lcldvcmtJdGVt
PiBjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiwgZG91YmxlIGRlbGF5KTsKKyAgICAgICAgflRpbWVy
V29ya0l0ZW0oKTsKKyAgICAgICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fZnVuY3Rpb247IH0KKyAgICAgICAgaW50IHRpbWVyRmlsZURlc2NyaXB0b3IoKSBj
b25zdCB7IHJldHVybiBtX3RpbWVyRmlsZURlc2NyaXB0b3I7IH0KKyAgICAgICAgZG91YmxlIGV4
cGlyZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cGlyZVRpbWU7IH0KKworICAgIHByb3RlY3Rl
ZDoKKyAgICAgICAgVGltZXJXb3JrSXRlbShGdW5jdGlvbjx2b2lkKCk+LCBpbnQgdGltZXJGaWxl
RGVzY3JpcHRvciwgZG91YmxlIGV4cGlyZVRpbWUpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
RnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOworICAgICAgICBpbnQgbV90aW1lckZpbGVEZXNj
cmlwdG9yOworICAgICAgICBkb3VibGUgbV9leHBpcmVUaW1lOworICAgIH07CisKICAgICBmZF9z
ZXQgbV9maWxlRGVzY3JpcHRvclNldDsKICAgICBpbnQgbV9tYXhGaWxlRGVzY3JpcHRvcjsKICAg
ICBpbnQgbV9yZWFkRnJvbVBpcGVEZXNjcmlwdG9yOwpAQCAtMTk5LDEzICsyMTYsMTUgQEAgcHJp
dmF0ZToKICAgICBpbnQgbV9zb2NrZXREZXNjcmlwdG9yOwogICAgIEZ1bmN0aW9uPHZvaWQoKT4g
bV9zb2NrZXRFdmVudEhhbmRsZXI7CiAKLSAgICBIYXNoTWFwPGludCwgT3duUHRyPEVjb3JlX1Rp
bWVyPiA+IG1fdGltZXJzOworICAgIFZlY3RvcjxPd25QdHI8VGltZXJXb3JrSXRlbT4gPiBtX3Rp
bWVyV29ya0l0ZW1zOworICAgIE11dGV4IG1fdGltZXJXb3JrSXRlbXNMb2NrOwogCiAgICAgdm9p
ZCBzZW5kTWVzc2FnZVRvVGhyZWFkKGNvbnN0IGNoYXIqKTsKICAgICBzdGF0aWMgdm9pZCogd29y
a1F1ZXVlVGhyZWFkKFdvcmtRdWV1ZSopOwogICAgIHZvaWQgcGVyZm9ybVdvcmsoKTsKICAgICB2
b2lkIHBlcmZvcm1GaWxlRGVzY3JpcHRvcldvcmsoKTsKLSAgICBzdGF0aWMgYm9vbCB0aW1lckZp
cmVkKHZvaWQqKTsKKyAgICBzdGF0aWMgYm9vbCB0aW1lckZpbGVEZXNjcmlwdG9yRXhwaXJlZChp
bnQgdGltZXJGaWxlRGVzY3JpcHRvciwgZmRfc2V0KiByZWFkRmlsZURlc2NyaXB0b3JTZXQpOwor
ICAgIHZvaWQgcGVyZm9ybVRpbWVyRmlsZURlc2NyaXB0b3JXb3JrKGZkX3NldCogcmVhZEZpbGVE
ZXNjcmlwdG9yU2V0KTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9l
ZmwvV29ya1F1ZXVlRWZsLmNwcAppbmRleCA0MWZmZWRmNTMzMWEyYTJlZWZkNmI4YzdmNGY4ZmIw
YjdjZjQ0NjFiLi4xMzM4YzZjYWRkNGYzZjc4MzdjNmYzMTUzYjhjMGFkZWUxMzc1NzJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcApAQCAtMjAsMzMg
KzIwLDczIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCiAK
KyNpbmNsdWRlIDxzeXMvdGltZXJmZC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAK
LWNsYXNzIFRpbWVyV29ya0l0ZW0gewotcHVibGljOgotICAgIFRpbWVyV29ya0l0ZW0oaW50IHRp
bWVySUQsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBXb3JrUXVldWUqIHF1ZXVl
KQotICAgICAgICA6IG1fZnVuY3Rpb24oZnVuY3Rpb24pCi0gICAgICAgICwgbV9xdWV1ZShxdWV1
ZSkKLSAgICAgICAgLCBtX3RpbWVySUQodGltZXJJRCkKLSAgICB7CitzdGF0aWMgY29uc3QgaW50
IGludmFsaWRTb2NrZXREZXNjcmlwdG9yID0gLTE7CitzdGF0aWMgY29uc3QgaW50IHRocmVhZE1l
c3NhZ2VTaXplID0gMTsKK3N0YXRpYyBjb25zdCBjaGFyIGZpbmlzaFRocmVhZE1lc3NhZ2VbXSA9
ICJGIjsKK3N0YXRpYyBjb25zdCBjaGFyIHdha3VwVGhyZWFkTWVzc2FnZVtdID0gIlciOworCitQ
YXNzT3duUHRyPFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbT4gV29ya1F1ZXVlOjpUaW1lcldvcmtJ
dGVtOjpjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5KQorewor
ICAgIGlmIChkZWxheSA8IDApIHsKKyAgICAgICAgTE9HX0VSUk9SKCJkZWxheSBzaG91bGQgbm90
IGJlIG5lZ2F0aXZlIik7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICB+VGlt
ZXJXb3JrSXRlbSgpIHsgfQogCi0gICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KLSAgICBXb3JrUXVldWUqIHF1ZXVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9xdWV1ZTsgfQorICAgIHN0cnVjdCB0aW1lc3BlYyBjdXJyZW50VGltZTsKKyAgICBp
ZiAoY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZjdXJyZW50VGltZSkgPT0gLTEpIHsK
KyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdGltZSAoJWQpIiwgZXJy
bm8pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICBpbnQgdGltZXJJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGltZXJJRDsgfQorICAgIGRvdWJsZSBjdXJyZW50ID0gY3VycmVu
dFRpbWUudHZfc2VjICsgKHN0YXRpY19jYXN0PGRvdWJsZT4oY3VycmVudFRpbWUudHZfbnNlYykg
LyAxMDAwMDAwMDAwKTsKKyAgICBkb3VibGUgZXhwaXJlID0gY3VycmVudCArIGRlbGF5OwogCi1w
cml2YXRlOgotICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKLSAgICBXb3JrUXVldWUq
IG1fcXVldWU7Ci0gICAgaW50IG1fdGltZXJJRDsKLX07CisgICAgc3RydWN0IGl0aW1lcnNwZWMg
ZXhwaXJlVGltZTsKKyAgICBleHBpcmVUaW1lLml0X3ZhbHVlLnR2X3NlYyA9IHN0YXRpY19jYXN0
PHRpbWVfdD4oZXhwaXJlKTsKKyAgICBleHBpcmVUaW1lLml0X3ZhbHVlLnR2X25zZWMgPSBzdGF0
aWNfY2FzdDxsb25nPigoZXhwaXJlIC0gZXhwaXJlVGltZS5pdF92YWx1ZS50dl9zZWMpICogMTAw
MDAwMDAwMCk7CisgICAgZXhwaXJlVGltZS5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOworICAgIGV4
cGlyZVRpbWUuaXRfaW50ZXJ2YWwudHZfbnNlYyA9IDA7CiAKLXN0YXRpYyBjb25zdCBpbnQgaW52
YWxpZFNvY2tldERlc2NyaXB0b3IgPSAtMTsKLXN0YXRpYyBjb25zdCBpbnQgdGhyZWFkTWVzc2Fn
ZVNpemUgPSAxOwotc3RhdGljIGNvbnN0IGNoYXIgZmluaXNoVGhyZWFkTWVzc2FnZVtdID0gIkYi
Owotc3RhdGljIGNvbnN0IGNoYXIgd2FrdXBUaHJlYWRNZXNzYWdlW10gPSAiVyI7CisgICAgaW50
IHRpbWVyRmlsZURlc2NyaXB0b3I7CisgICAgaWYgKCh0aW1lckZpbGVEZXNjcmlwdG9yID0gdGlt
ZXJmZF9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLCBURkRfTk9OQkxPQ0spKSA8IDApIHsKKyAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHRpbWVyZmQiKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKHRpbWVyZmRfc2V0dGltZSh0aW1lckZpbGVEZXNj
cmlwdG9yLCBURkRfVElNRVJfQUJTVElNRSwgJmV4cGlyZVRpbWUsIDApID09IC0xKSB7CisgICAg
ICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNldCB0aW1lcmZkKCVkKSIsIHRpbWVyRmlsZURlc2Ny
aXB0b3IpOworICAgICAgICBjbG9zZSh0aW1lckZpbGVEZXNjcmlwdG9yKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUaW1lcldvcmtJ
dGVtKGZ1bmN0aW9uLCB0aW1lckZpbGVEZXNjcmlwdG9yLCBleHBpcmUpKTsKK30KKworV29ya1F1
ZXVlOjpUaW1lcldvcmtJdGVtOjpUaW1lcldvcmtJdGVtKEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rp
b24sIGludCB0aW1lckZpbGVEZXNjcmlwdG9yLCBkb3VibGUgZXhwaXJlVGltZSkKKyAgICA6IG1f
ZnVuY3Rpb24oZnVuY3Rpb24pCisgICAgLCBtX3RpbWVyRmlsZURlc2NyaXB0b3IodGltZXJGaWxl
RGVzY3JpcHRvcikKKyAgICAsIG1fZXhwaXJlVGltZShleHBpcmVUaW1lKQoreworfQorCitXb3Jr
UXVldWU6OlRpbWVyV29ya0l0ZW06On5UaW1lcldvcmtJdGVtKCkKK3sKKyAgICBzdHJ1Y3QgaXRp
bWVyc3BlYyB0aW1lclZhbHVlOworICAgIHRpbWVyVmFsdWUuaXRfdmFsdWUudHZfc2VjID0gMDsK
KyAgICB0aW1lclZhbHVlLml0X3ZhbHVlLnR2X25zZWMgPSAwOworICAgIHRpbWVyVmFsdWUuaXRf
aW50ZXJ2YWwudHZfc2VjID0gMDsKKyAgICB0aW1lclZhbHVlLml0X2ludGVydmFsLnR2X25zZWMg
PSAwOworCisgICAgaWYgKG1fdGltZXJGaWxlRGVzY3JpcHRvciA8IDApCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICh0aW1lcmZkX3NldHRpbWUobV90aW1lckZpbGVEZXNjcmlwdG9yLCAwLCAm
dGltZXJWYWx1ZSwgMCkgPT0gLTEpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNsZWFy
IHRpbWVyZmQoJWQpIiwgbV90aW1lckZpbGVEZXNjcmlwdG9yKTsKKyAgICBjbG9zZShtX3RpbWVy
RmlsZURlc2NyaXB0b3IpOworfQogCiB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KGNvbnN0IGNoYXIqIG5hbWUpCiB7CkBAIC0xMDIsNyArMTQyLDUzIEBAIHZvaWQgV29ya1F1ZXVl
OjpwZXJmb3JtRmlsZURlc2NyaXB0b3JXb3JrKCkKIAogICAgICAgICBpZiAobV9zb2NrZXREZXNj
cmlwdG9yICE9IGludmFsaWRTb2NrZXREZXNjcmlwdG9yICYmIEZEX0lTU0VUKG1fc29ja2V0RGVz
Y3JpcHRvciwgJnJlYWRGaWxlRGVzY3JpcHRvclNldCkpCiAgICAgICAgICAgICBtX3NvY2tldEV2
ZW50SGFuZGxlcigpOworCisgICAgICAgIHBlcmZvcm1UaW1lckZpbGVEZXNjcmlwdG9yV29yaygm
cmVhZEZpbGVEZXNjcmlwdG9yU2V0KTsKKyAgICB9Cit9CisKK2Jvb2wgV29ya1F1ZXVlOjp0aW1l
ckZpbGVEZXNjcmlwdG9yRXhwaXJlZChpbnQgdGltZXJGaWxlRGVzY3JpcHRvciwgZmRfc2V0KiBy
ZWFkRmlsZURlc2NyaXB0b3JTZXQpCit7CisgICAgaWYgKHRpbWVyRmlsZURlc2NyaXB0b3IgPCAw
IHx8ICFyZWFkRmlsZURlc2NyaXB0b3JTZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghRkRfSVNTRVQodGltZXJGaWxlRGVzY3JpcHRvciwgcmVhZEZpbGVEZXNjcmlwdG9yU2V0
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGJ5dGVzUmVhZDsKKyAgICB1aW50
NjRfdCBleHBpcmF0aW9uczsKKyAgICBpZiAoKGJ5dGVzUmVhZCA9IHJlYWQodGltZXJGaWxlRGVz
Y3JpcHRvciwgJmV4cGlyYXRpb25zLCBzaXplb2YodWludDY0X3QpKSkgIT0gc2l6ZW9mKHVpbnQ2
NF90KSkgeworICAgICAgICBpZiAoYnl0ZXNSZWFkICE9IC0xKQorICAgICAgICAgICAgTE9HX0VS
Uk9SKCJ0aW1lcmZkKCVkKSByZWFkIGVycm9yIiwgdGltZXJGaWxlRGVzY3JpcHRvcik7CisgICAg
ICAgIGVsc2UgaWYgKGVycm5vICE9IEVBR0FJTikKKyAgICAgICAgICAgIExPR19FUlJPUigidGlt
ZXJmZCglZCkgcmVhZCBlcnJvciglZCkiLCB0aW1lckZpbGVEZXNjcmlwdG9yLCBlcnJubyk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBXb3JrUXVldWU6OnBlcmZvcm1UaW1lckZpbGVEZXNjcmlwdG9yV29yayhmZF9zZXQqIHJlYWRG
aWxlRGVzY3JpcHRvclNldCkKK3sKKyAgICBtX3RpbWVyV29ya0l0ZW1zTG9jay5sb2NrKCk7Cisg
ICAgd2hpbGUgKCFtX3RpbWVyV29ya0l0ZW1zLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0b3I8
T3duUHRyPFRpbWVyV29ya0l0ZW0+ID4gdGltZXJXb3JrSXRlbXM7CisgICAgICAgIG1fdGltZXJX
b3JrSXRlbXMuc3dhcCh0aW1lcldvcmtJdGVtcyk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0aW1lcldvcmtJdGVtcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKCF0
aW1lckZpbGVEZXNjcmlwdG9yRXhwaXJlZCh0aW1lcldvcmtJdGVtc1tpXS0+dGltZXJGaWxlRGVz
Y3JpcHRvcigpLCByZWFkRmlsZURlc2NyaXB0b3JTZXQpKSB7CisgICAgICAgICAgICAgICAgbV90
aW1lcldvcmtJdGVtcy5hcHBlbmQodGltZXJXb3JrSXRlbXNbaV0ucmVsZWFzZSgpKTsKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRkRfQ0xS
KHRpbWVyV29ya0l0ZW1zW2ldLT50aW1lckZpbGVEZXNjcmlwdG9yKCksICZtX2ZpbGVEZXNjcmlw
dG9yU2V0KTsKKworICAgICAgICAgICAgbV90aW1lcldvcmtJdGVtc0xvY2sudW5sb2NrKCk7Cisg
ICAgICAgICAgICBkaXNwYXRjaCh0aW1lcldvcmtJdGVtc1tpXS0+ZnVuY3Rpb24oKSk7CisgICAg
ICAgICAgICBtX3RpbWVyV29ya0l0ZW1zTG9jay5sb2NrKCk7CisgICAgICAgIH0KICAgICB9Cisg
ICAgbV90aW1lcldvcmtJdGVtc0xvY2sudW5sb2NrKCk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjpz
ZW5kTWVzc2FnZVRvVGhyZWFkKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCkBAIC0xNTMsMjEgKzIzOSwx
OCBAQCB2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24pCiAgICAgc2VuZE1lc3NhZ2VUb1RocmVhZCh3YWt1cFRocmVhZE1lc3NhZ2UpOwogfQog
Ci1ib29sIFdvcmtRdWV1ZTo6dGltZXJGaXJlZCh2b2lkKiBkYXRhKQotewotICAgIFRpbWVyV29y
a0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxUaW1lcldvcmtJdGVtKj4oZGF0YSk7Ci0gICAgaWYg
KGl0ZW0gJiYgaXRlbS0+cXVldWUoKS0+bV9pc1ZhbGlkKSB7Ci0gICAgICAgIGl0ZW0tPnF1ZXVl
KCktPmRpc3BhdGNoKGl0ZW0tPmZ1bmN0aW9uKCkpOwotICAgICAgICBpdGVtLT5xdWV1ZSgpLT5t
X3RpbWVycy50YWtlKGl0ZW0tPnRpbWVySUQoKSk7Ci0gICAgICAgIGRlbGV0ZSBpdGVtOwotICAg
IH0KLQotICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19Ci0KIHZvaWQgV29ya1F1
ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24s
IGRvdWJsZSBkZWxheSkKIHsKLSAgICBzdGF0aWMgaW50IHRpbWVySWQgPSAxOwotICAgIG1fdGlt
ZXJzLnNldCh0aW1lcklkLCBhZG9wdFB0cihlY29yZV90aW1lcl9hZGQoZGVsYXksIHJlaW50ZXJw
cmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIG5ldyBUaW1lcldvcmtJdGVtKHRp
bWVySWQsIGZ1bmN0aW9uLCB0aGlzKSkpKTsKLSAgICB0aW1lcklkKys7CisgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fd29ya0l0ZW1RdWV1ZUxvY2spOworICAgIE93blB0cjxUaW1lcldvcmtJdGVt
PiB0aW1lcldvcmtJdGVtID0gVGltZXJXb3JrSXRlbTo6Y3JlYXRlKGZ1bmN0aW9uLCBkZWxheSk7
CisgICAgaWYgKCF0aW1lcldvcmtJdGVtKQorICAgICAgICByZXR1cm47CisKKyAgICBGRF9TRVQo
dGltZXJXb3JrSXRlbS0+dGltZXJGaWxlRGVzY3JpcHRvcigpLCAmbV9maWxlRGVzY3JpcHRvclNl
dCk7CisgICAgc2l6ZV90IHBvc2l0aW9uID0gMDsKKyAgICBmb3IgKDsgcG9zaXRpb24gPCBtX3Rp
bWVyV29ya0l0ZW1zLnNpemUoKTsgcG9zaXRpb24rKykKKyAgICAgICAgaWYgKHRpbWVyV29ya0l0
ZW0tPmV4cGlyZVRpbWUoKSA8IG1fdGltZXJXb3JrSXRlbXNbcG9zaXRpb25dLT5leHBpcmVUaW1l
KCkpCisgICAgICAgICAgICBicmVhazsKKyAgICBtX3RpbWVyV29ya0l0ZW1zLmluc2VydChwb3Np
dGlvbiwgdGltZXJXb3JrSXRlbS5yZWxlYXNlKCkpOworICAgIHNlbmRNZXNzYWdlVG9UaHJlYWQo
d2FrdXBUaHJlYWRNZXNzYWdlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158544</attachid>
            <date>2012-08-15 04:15:44 -0700</date>
            <delta_ts>2012-08-15 09:32:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120815201510.patch</filename>
            <type>text/plain</type>
            <size>8673</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWEyZGYxZDgxNWNiMGNl
YjcxMzZmMjVhOWU2YWRmOGQ3NzE0MWFiMy4uY2IxOGEyNDQ1ODIyYWE4YWZkZDVjYWIwMDUyZmU2
YzdhMDAzMGJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTE1ICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIFVJIFByb2Nl
c3MgaXMgY3Jhc2hlZCBhbmQgV2ViUHJvY2VzcydzIGVjb3JlIG1haW4gbG9vcCBpcyB2ZXJ5Cisg
ICAgICAgIGJ1c3kgb3IgbG9ja3VwIGFsc28sIHdhdGNoZG9jQ2FsbGJhY2soKSBmdW5jdGlvbiBp
biB0aGUKKyAgICAgICAgQ2hpbGRQcm9jZXNzLmNwcCBkb2Vzbid0IHRyaWdnZXJlZC4gQW5kIHRo
aXMgaXMgYmVjYXVzZSBvZiB0aGF0CisgICAgICAgIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRl
bGF5KCkgZnVuY3Rpb24gdXNlcyBlY29yZSB0aW1lciBmb3IgZ2V0dGluZworICAgICAgICB0aW1l
ciBldmVudC4KKyAgICAgICAgRm9yIHJlbW92aW5nIHRoZSBkZXBlbmRlbmN5IGJldHdlZW4gdGhl
IGRpc3BhdGNoQWZ0ZXJEZWxheSgpIGFuZCBlY29yZQorICAgICAgICBtYWluIGxvb3AsIG5ldyB0
aW1lciBldmVudCBtZWNoYW5pc20gaXMgYWRkZWQgdG8gV29ya1F1ZXVlIG1haW4gbG9vcC4KKwor
ICAgICAgICAqIFBsYXRmb3JtL1dvcmtRdWV1ZS5oOgorICAgICAgICAoVGltZXJXb3JrSXRlbSk6
CisgICAgICAgIChXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06OmRpc3BhdGNoKToKKyAgICAgICAg
KFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6ZXhwaXJlVGltZSk6CisgICAgICAgIChXb3JrUXVl
dWU6OlRpbWVyV29ya0l0ZW06OmV4cGlyZWQpOgorICAgICAgICAoV29ya1F1ZXVlKToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6
VGltZXJXb3JrSXRlbTo6Y3JlYXRlKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRl
bTo6VGltZXJXb3JrSXRlbSk6CisgICAgICAgIChXb3JrUXVldWU6OnBlcmZvcm1GaWxlRGVzY3Jp
cHRvcldvcmspOgorICAgICAgICAoV29ya1F1ZXVlOjpnZXRDdXJyZW50VGltZSk6CisgICAgICAg
IChXb3JrUXVldWU6OmdldE5leHRUaW1lT3V0KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGVyZm9y
bVRpbWVyV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZCk6CisgICAg
ICAgIChXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxheSk6CisKIDIwMTItMDgtMTQgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBEZWxldGUgRnJhbWU6OmRvbVdp
bmRvdygpIGFuZCBGcmFtZTo6ZXhpc3RpbmdET01XaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9X
b3JrUXVldWUuaAppbmRleCA1ZmY3ZDM5Y2NjZjQxY2U0NTgzMjc1M2JmOGU3OTZiNTI1YjQxZDJl
Li5jNWQxZmM3NjhmMTE5NDNjODYxZmRjZjU1NzY2NzgxY2ZiZDY5M2Q1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Xb3JrUXVldWUuaApAQCAtMTg3LDYgKzE4NywyMSBAQCBwcml2YXRlOgogICAgIEhh
c2hNYXA8aW50LCBWZWN0b3I8RXZlbnRTb3VyY2UqPiA+IG1fZXZlbnRTb3VyY2VzOwogICAgIHR5
cGVkZWYgSGFzaE1hcDxpbnQsIFZlY3RvcjxFdmVudFNvdXJjZSo+ID46Oml0ZXJhdG9yIEV2ZW50
U291cmNlSXRlcmF0b3I7IAogI2VsaWYgUExBVEZPUk0oRUZMKQorICAgIGNsYXNzIFRpbWVyV29y
a0l0ZW0geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8VGltZXJXb3Jr
SXRlbT4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoKT4sIGRvdWJsZSBleHBpcmVUaW1lKTsKKyAgICAg
ICAgdm9pZCBkaXNwYXRjaCgpIHsgbV9mdW5jdGlvbigpOyB9CisgICAgICAgIGRvdWJsZSBleHBp
cmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9leHBpcmVUaW1lOyB9CisgICAgICAgIGJvb2wgZXhw
aXJlZChkb3VibGUgY3VycmVudFRpbWUpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRUaW1lID49IG1f
ZXhwaXJlVGltZTsgfQorCisgICAgcHJvdGVjdGVkOgorICAgICAgICBUaW1lcldvcmtJdGVtKEZ1
bmN0aW9uPHZvaWQoKT4sIGRvdWJsZSBleHBpcmVUaW1lKTsKKworICAgIHByaXZhdGU6CisgICAg
ICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKKyAgICAgICAgZG91YmxlIG1fZXhwaXJl
VGltZTsKKyAgICB9OworCiAgICAgZmRfc2V0IG1fZmlsZURlc2NyaXB0b3JTZXQ7CiAgICAgaW50
IG1fbWF4RmlsZURlc2NyaXB0b3I7CiAgICAgaW50IG1fcmVhZEZyb21QaXBlRGVzY3JpcHRvcjsK
QEAgLTE5OSwxMyArMjE0LDE2IEBAIHByaXZhdGU6CiAgICAgaW50IG1fc29ja2V0RGVzY3JpcHRv
cjsKICAgICBGdW5jdGlvbjx2b2lkKCk+IG1fc29ja2V0RXZlbnRIYW5kbGVyOwogCi0gICAgSGFz
aE1hcDxpbnQsIE93blB0cjxFY29yZV9UaW1lcj4gPiBtX3RpbWVyczsKKyAgICBWZWN0b3I8T3du
UHRyPFRpbWVyV29ya0l0ZW0+ID4gbV90aW1lcldvcmtJdGVtczsKKyAgICBNdXRleCBtX3RpbWVy
V29ya0l0ZW1zTG9jazsKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1RocmVhZChjb25zdCBjaGFy
Kik7CiAgICAgc3RhdGljIHZvaWQqIHdvcmtRdWV1ZVRocmVhZChXb3JrUXVldWUqKTsKICAgICB2
b2lkIHBlcmZvcm1Xb3JrKCk7CiAgICAgdm9pZCBwZXJmb3JtRmlsZURlc2NyaXB0b3JXb3JrKCk7
Ci0gICAgc3RhdGljIGJvb2wgdGltZXJGaXJlZCh2b2lkKik7CisgICAgc3RhdGljIGRvdWJsZSBn
ZXRDdXJyZW50VGltZSgpOworICAgIHN0cnVjdCB0aW1ldmFsKiBnZXROZXh0VGltZU91dCgpOwor
ICAgIHZvaWQgcGVyZm9ybVRpbWVyV29yaygpOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCmluZGV4IDQxZmZlZGY1MzMxYTJhMmVl
ZmQ2YjhjN2Y0ZjhmYjBiN2NmNDQ2MWIuLjQ2MjQ2NWU1YjM2NzY2MDhhZWRlMDg0ZjhiNWYyNzQ2
ZTMzZDVjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVl
dWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwu
Y3BwCkBAIC0yMCwzNCArMjAsMjggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
b3JrUXVldWUuaCIKIAorI2luY2x1ZGUgPHN5cy90aW1lcmZkLmg+CiAjaW5jbHVkZSA8d3RmL0Fz
c2VydGlvbnMuaD4KIAotY2xhc3MgVGltZXJXb3JrSXRlbSB7Ci1wdWJsaWM6Ci0gICAgVGltZXJX
b3JrSXRlbShpbnQgdGltZXJJRCwgY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24sIFdv
cmtRdWV1ZSogcXVldWUpCi0gICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKLSAgICAgICAg
LCBtX3F1ZXVlKHF1ZXVlKQotICAgICAgICAsIG1fdGltZXJJRCh0aW1lcklEKQotICAgIHsKLSAg
ICB9Ci0gICAgflRpbWVyV29ya0l0ZW0oKSB7IH0KLQotICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVu
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uOyB9Ci0gICAgV29ya1F1ZXVlKiBxdWV1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVldWU7IH0KLQotICAgIGludCB0aW1lcklEKCkgY29uc3Qg
eyByZXR1cm4gbV90aW1lcklEOyB9Ci0KLXByaXZhdGU6Ci0gICAgRnVuY3Rpb248dm9pZCgpPiBt
X2Z1bmN0aW9uOwotICAgIFdvcmtRdWV1ZSogbV9xdWV1ZTsKLSAgICBpbnQgbV90aW1lcklEOwot
fTsKLQogc3RhdGljIGNvbnN0IGludCBpbnZhbGlkU29ja2V0RGVzY3JpcHRvciA9IC0xOwogc3Rh
dGljIGNvbnN0IGludCB0aHJlYWRNZXNzYWdlU2l6ZSA9IDE7CiBzdGF0aWMgY29uc3QgY2hhciBm
aW5pc2hUaHJlYWRNZXNzYWdlW10gPSAiRiI7CiBzdGF0aWMgY29uc3QgY2hhciB3YWt1cFRocmVh
ZE1lc3NhZ2VbXSA9ICJXIjsKIAorUGFzc093blB0cjxXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW0+
IFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6Y3JlYXRlKEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rp
b24sIGRvdWJsZSBleHBpcmVUaW1lKQoreworICAgIGlmIChleHBpcmVUaW1lIDwgMCkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVyV29ya0l0
ZW0oZnVuY3Rpb24sIGV4cGlyZVRpbWUpKTsKK30KKworV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVt
OjpUaW1lcldvcmtJdGVtKEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24sIGRvdWJsZSBleHBpcmVU
aW1lKQorICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAgICAsIG1fZXhwaXJlVGltZShleHBp
cmVUaW1lKQoreworfQorCiB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0
IGNoYXIqIG5hbWUpCiB7CiAgICAgaW50IGZkc1syXTsKQEAgLTkxLDcgKzg1LDcgQEAgdm9pZCBX
b3JrUXVldWU6OnBlcmZvcm1GaWxlRGVzY3JpcHRvcldvcmsoKQogewogICAgIGZkX3NldCByZWFk
RmlsZURlc2NyaXB0b3JTZXQgPSBtX2ZpbGVEZXNjcmlwdG9yU2V0OwogCi0gICAgaWYgKHNlbGVj
dChtX21heEZpbGVEZXNjcmlwdG9yICsgMSwgJnJlYWRGaWxlRGVzY3JpcHRvclNldCwgMCwgMCwg
MCkgPj0gMCkgeworICAgIGlmIChzZWxlY3QobV9tYXhGaWxlRGVzY3JpcHRvciArIDEsICZyZWFk
RmlsZURlc2NyaXB0b3JTZXQsIDAsIDAsIGdldE5leHRUaW1lT3V0KCkpID49IDApIHsKICAgICAg
ICAgaWYgKEZEX0lTU0VUKG1fcmVhZEZyb21QaXBlRGVzY3JpcHRvciwgJnJlYWRGaWxlRGVzY3Jp
cHRvclNldCkpIHsKICAgICAgICAgICAgIGNoYXIgcmVhZEJ1Zlt0aHJlYWRNZXNzYWdlU2l6ZV07
CiAgICAgICAgICAgICBpZiAocmVhZChtX3JlYWRGcm9tUGlwZURlc2NyaXB0b3IsIHJlYWRCdWYs
IHRocmVhZE1lc3NhZ2VTaXplKSA9PSAtMSkKQEAgLTEwNSw2ICs5OSw2MCBAQCB2b2lkIFdvcmtR
dWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpCiAgICAgfQogfQogCitkb3VibGUgV29y
a1F1ZXVlOjpnZXRDdXJyZW50VGltZSgpCit7CisgICAgc3RydWN0IHRpbWV2YWwgdGltZVZhbHVl
OworICAgIGlmIChnZXR0aW1lb2ZkYXkoJnRpbWVWYWx1ZSwgMCkgPT0gLTEpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdGltZSAoJWQpIiwgZXJybm8pOworICAg
ICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
dGltZVZhbHVlLnR2X3NlYykgKyAoc3RhdGljX2Nhc3Q8ZG91YmxlPih0aW1lVmFsdWUudHZfdXNl
YykgLyAxMDAwMDAwKTsKK30KKworc3RydWN0IHRpbWV2YWwqIFdvcmtRdWV1ZTo6Z2V0TmV4dFRp
bWVPdXQoKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbWVyV29ya0l0ZW1zTG9jayk7
CisgICAgaWYgKG1fdGltZXJXb3JrSXRlbXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHN0YXRpYyBzdHJ1Y3QgdGltZXZhbCB0aW1lVmFsdWU7CisgICAgdGltZVZhbHVlLnR2
X3NlYyA9IDE7CisgICAgdGltZVZhbHVlLnR2X3VzZWMgPSAwOworICAgIGRvdWJsZSB0aW1lT3V0
ID0gbV90aW1lcldvcmtJdGVtc1swXS0+ZXhwaXJlVGltZSgpIC0gZ2V0Q3VycmVudFRpbWUoKTsK
KyAgICBpZiAodGltZU91dCA+IDApIHsKKyAgICAgICAgdGltZVZhbHVlLnR2X3NlYyA9IHN0YXRp
Y19jYXN0PGxvbmc+KHRpbWVPdXQpOworICAgICAgICB0aW1lVmFsdWUudHZfdXNlYyA9IHN0YXRp
Y19jYXN0PGxvbmc+KCh0aW1lT3V0IC0gdGltZVZhbHVlLnR2X3NlYykqMTAwMDAwMCk7CisgICAg
fQorICAgIHJldHVybiAmdGltZVZhbHVlOworfQorCit2b2lkIFdvcmtRdWV1ZTo6cGVyZm9ybVRp
bWVyV29yaygpCit7CisgICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9jaygpOworCisgICAgaWYg
KG1fdGltZXJXb3JrSXRlbXMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdGltZXJXb3JrSXRlbXNM
b2NrLnVubG9jaygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZG91YmxlIGN1cnJl
bnRUaW1lID0gZ2V0Q3VycmVudFRpbWUoKTsKKyAgICBWZWN0b3I8T3duUHRyPFRpbWVyV29ya0l0
ZW0+ID4gdGltZXJXb3JrSXRlbXM7CisgICAgbV90aW1lcldvcmtJdGVtcy5zd2FwKHRpbWVyV29y
a0l0ZW1zKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGltZXJXb3JrSXRlbXMuc2l6
ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKCF0aW1lcldvcmtJdGVtc1tpXS0+ZXhwaXJlZChjdXJy
ZW50VGltZSkpIHsKKyAgICAgICAgICAgIG1fdGltZXJXb3JrSXRlbXMuYXBwZW5kKHRpbWVyV29y
a0l0ZW1zW2ldLnJlbGVhc2UoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
CisgICAgICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLnVubG9jaygpOworICAgICAgICB0aW1lcldv
cmtJdGVtc1tpXS0+ZGlzcGF0Y2goKTsKKyAgICAgICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9j
aygpOworICAgIH0KKyAgICBtX3RpbWVyV29ya0l0ZW1zTG9jay51bmxvY2soKTsKK30KKwogdm9p
ZCBXb3JrUXVldWU6OnNlbmRNZXNzYWdlVG9UaHJlYWQoY29uc3QgY2hhciogbWVzc2FnZSkKIHsK
ICAgICBpZiAod3JpdGUobV93cml0ZVRvUGlwZURlc2NyaXB0b3IsIG1lc3NhZ2UsIHRocmVhZE1l
c3NhZ2VTaXplKSA9PSAtMSkKQEAgLTExNSw2ICsxNjMsNyBAQCB2b2lkKiBXb3JrUXVldWU6Ondv
cmtRdWV1ZVRocmVhZChXb3JrUXVldWUqIHdvcmtRdWV1ZSkKIHsKICAgICB3aGlsZSAod29ya1F1
ZXVlLT5tX3RocmVhZExvb3ApIHsKICAgICAgICAgd29ya1F1ZXVlLT5wZXJmb3JtV29yaygpOwor
ICAgICAgICB3b3JrUXVldWUtPnBlcmZvcm1UaW1lcldvcmsoKTsKICAgICAgICAgd29ya1F1ZXVl
LT5wZXJmb3JtRmlsZURlc2NyaXB0b3JXb3JrKCk7CiAgICAgfQogCkBAIC0xNTMsMjEgKzIwMiwy
MCBAQCB2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24pCiAgICAgc2VuZE1lc3NhZ2VUb1RocmVhZCh3YWt1cFRocmVhZE1lc3NhZ2UpOwogfQog
Ci1ib29sIFdvcmtRdWV1ZTo6dGltZXJGaXJlZCh2b2lkKiBkYXRhKQotewotICAgIFRpbWVyV29y
a0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxUaW1lcldvcmtJdGVtKj4oZGF0YSk7Ci0gICAgaWYg
KGl0ZW0gJiYgaXRlbS0+cXVldWUoKS0+bV9pc1ZhbGlkKSB7Ci0gICAgICAgIGl0ZW0tPnF1ZXVl
KCktPmRpc3BhdGNoKGl0ZW0tPmZ1bmN0aW9uKCkpOwotICAgICAgICBpdGVtLT5xdWV1ZSgpLT5t
X3RpbWVycy50YWtlKGl0ZW0tPnRpbWVySUQoKSk7Ci0gICAgICAgIGRlbGV0ZSBpdGVtOwotICAg
IH0KLQotICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19Ci0KIHZvaWQgV29ya1F1
ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24s
IGRvdWJsZSBkZWxheSkKIHsKLSAgICBzdGF0aWMgaW50IHRpbWVySWQgPSAxOwotICAgIG1fdGlt
ZXJzLnNldCh0aW1lcklkLCBhZG9wdFB0cihlY29yZV90aW1lcl9hZGQoZGVsYXksIHJlaW50ZXJw
cmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIG5ldyBUaW1lcldvcmtJdGVtKHRp
bWVySWQsIGZ1bmN0aW9uLCB0aGlzKSkpKTsKLSAgICB0aW1lcklkKys7CisgICAgaWYgKGRlbGF5
IDwgMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd29ya0l0
ZW1RdWV1ZUxvY2spOworICAgIE93blB0cjxUaW1lcldvcmtJdGVtPiB0aW1lcldvcmtJdGVtID0g
VGltZXJXb3JrSXRlbTo6Y3JlYXRlKGZ1bmN0aW9uLCBnZXRDdXJyZW50VGltZSgpICsgZGVsYXkp
OworICAgIGlmICghdGltZXJXb3JrSXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90
IHBvc2l0aW9uID0gMDsKKyAgICBmb3IgKDsgcG9zaXRpb24gPCBtX3RpbWVyV29ya0l0ZW1zLnNp
emUoKTsgcG9zaXRpb24rKykKKyAgICAgICAgaWYgKHRpbWVyV29ya0l0ZW0tPmV4cGlyZVRpbWUo
KSA8IG1fdGltZXJXb3JrSXRlbXNbcG9zaXRpb25dLT5leHBpcmVUaW1lKCkpCisgICAgICAgICAg
ICBicmVhazsKKyAgICBtX3RpbWVyV29ya0l0ZW1zLmluc2VydChwb3NpdGlvbiwgdGltZXJXb3Jr
SXRlbS5yZWxlYXNlKCkpOworICAgIHNlbmRNZXNzYWdlVG9UaHJlYWQod2FrdXBUaHJlYWRNZXNz
YWdlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158579</attachid>
            <date>2012-08-15 09:32:56 -0700</date>
            <delta_ts>2012-08-28 19:45:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120816013222.patch</filename>
            <type>text/plain</type>
            <size>8740</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWEyZGYxZDgxNWNiMGNl
YjcxMzZmMjVhOWU2YWRmOGQ3NzE0MWFiMy4uODVkNDMwZDFhMzlhN2YxMDYzNzhmYjNjNjA0NTRh
OThhZmQzNjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTE1ICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIFVJIFByb2Nl
c3MgaXMgY3Jhc2hlZCBhbmQgV2ViUHJvY2VzcydzIGVjb3JlIG1haW4gbG9vcCBpcyB2ZXJ5Cisg
ICAgICAgIGJ1c3kgb3IgbG9ja3VwIGFsc28sIHdhdGNoZG9jQ2FsbGJhY2soKSBmdW5jdGlvbiBp
biB0aGUKKyAgICAgICAgQ2hpbGRQcm9jZXNzLmNwcCBkb2Vzbid0IHRyaWdnZXJlZC4gQW5kIHRo
aXMgaXMgYmVjYXVzZSBvZiB0aGF0CisgICAgICAgIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRl
bGF5KCkgZnVuY3Rpb24gdXNlcyBlY29yZSB0aW1lciBmb3IgZ2V0dGluZworICAgICAgICB0aW1l
ciBldmVudC4KKworICAgICAgICBGb3IgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgYmV0d2VlbiB0
aGUgZGlzcGF0Y2hBZnRlckRlbGF5KCkgYW5kIGVjb3JlCisgICAgICAgIG1haW4gbG9vcCwgbmV3
IHRpbWVyIGV2ZW50IG1lY2hhbmlzbSBpcyBhZGRlZCB0byBXb3JrUXVldWUgbWFpbiBsb29wLgor
CisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6CisgICAgICAgIChUaW1lcldvcmtJdGVt
KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6ZGlzcGF0Y2gpOgorICAgICAg
ICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpleHBpcmVUaW1lKToKKyAgICAgICAgKFdvcmtR
dWV1ZTo6VGltZXJXb3JrSXRlbTo6ZXhwaXJlZCk6CisgICAgICAgIChXb3JrUXVldWUpOgorICAg
ICAgICAqIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwOgorICAgICAgICAoV29ya1F1ZXVl
OjpUaW1lcldvcmtJdGVtOjpjcmVhdGUpOgorICAgICAgICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJ
dGVtOjpUaW1lcldvcmtJdGVtKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNj
cmlwdG9yV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OmdldEN1cnJlbnRUaW1lKToKKyAgICAg
ICAgKFdvcmtRdWV1ZTo6Z2V0TmV4dFRpbWVPdXQpOgorICAgICAgICAoV29ya1F1ZXVlOjpwZXJm
b3JtVGltZXJXb3JrKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6d29ya1F1ZXVlVGhyZWFkKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KToKKwogMjAxMi0wOC0xNCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIERlbGV0ZSBGcmFtZTo6ZG9t
V2luZG93KCkgYW5kIEZyYW1lOjpleGlzdGluZ0RPTVdpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L1dvcmtRdWV1ZS5oCmluZGV4IDVmZjdkMzljY2NmNDFjZTQ1ODMyNzUzYmY4ZTc5NmI1MjViNDFk
MmUuLmM1ZDFmYzc2OGYxMTk0M2M4NjFmZGNmNTU3NjY3ODFjZmJkNjkzZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1dvcmtRdWV1ZS5oCkBAIC0xODcsNiArMTg3LDIxIEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxpbnQsIFZlY3RvcjxFdmVudFNvdXJjZSo+ID4gbV9ldmVudFNvdXJjZXM7CiAgICAg
dHlwZWRlZiBIYXNoTWFwPGludCwgVmVjdG9yPEV2ZW50U291cmNlKj4gPjo6aXRlcmF0b3IgRXZl
bnRTb3VyY2VJdGVyYXRvcjsgCiAjZWxpZiBQTEFURk9STShFRkwpCisgICAgY2xhc3MgVGltZXJX
b3JrSXRlbSB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxUaW1lcldv
cmtJdGVtPiBjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiwgZG91YmxlIGV4cGlyZVRpbWUpOworICAg
ICAgICB2b2lkIGRpc3BhdGNoKCkgeyBtX2Z1bmN0aW9uKCk7IH0KKyAgICAgICAgZG91YmxlIGV4
cGlyZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cGlyZVRpbWU7IH0KKyAgICAgICAgYm9vbCBl
eHBpcmVkKGRvdWJsZSBjdXJyZW50VGltZSkgY29uc3QgeyByZXR1cm4gY3VycmVudFRpbWUgPj0g
bV9leHBpcmVUaW1lOyB9CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIFRpbWVyV29ya0l0ZW0o
RnVuY3Rpb248dm9pZCgpPiwgZG91YmxlIGV4cGlyZVRpbWUpOworCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOworICAgICAgICBkb3VibGUgbV9leHBp
cmVUaW1lOworICAgIH07CisKICAgICBmZF9zZXQgbV9maWxlRGVzY3JpcHRvclNldDsKICAgICBp
bnQgbV9tYXhGaWxlRGVzY3JpcHRvcjsKICAgICBpbnQgbV9yZWFkRnJvbVBpcGVEZXNjcmlwdG9y
OwpAQCAtMTk5LDEzICsyMTQsMTYgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9zb2NrZXREZXNjcmlw
dG9yOwogICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9zb2NrZXRFdmVudEhhbmRsZXI7CiAKLSAgICBI
YXNoTWFwPGludCwgT3duUHRyPEVjb3JlX1RpbWVyPiA+IG1fdGltZXJzOworICAgIFZlY3RvcjxP
d25QdHI8VGltZXJXb3JrSXRlbT4gPiBtX3RpbWVyV29ya0l0ZW1zOworICAgIE11dGV4IG1fdGlt
ZXJXb3JrSXRlbXNMb2NrOwogCiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvVGhyZWFkKGNvbnN0IGNo
YXIqKTsKICAgICBzdGF0aWMgdm9pZCogd29ya1F1ZXVlVGhyZWFkKFdvcmtRdWV1ZSopOwogICAg
IHZvaWQgcGVyZm9ybVdvcmsoKTsKICAgICB2b2lkIHBlcmZvcm1GaWxlRGVzY3JpcHRvcldvcmso
KTsKLSAgICBzdGF0aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqKTsKKyAgICBzdGF0aWMgZG91Ymxl
IGdldEN1cnJlbnRUaW1lKCk7CisgICAgc3RydWN0IHRpbWV2YWwqIGdldE5leHRUaW1lT3V0KCk7
CisgICAgdm9pZCBwZXJmb3JtVGltZXJXb3JrKCk7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAKaW5kZXggNDFmZmVkZjUzMzFhMmEy
ZWVmZDZiOGM3ZjRmOGZiMGI3Y2Y0NDYxYi4uM2M2MGU2MTRlOTZhMjRiM2M3ZjJmZjBiMmYyNTQz
NWUyNzU3ZDUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL1dvcmtR
dWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVm
bC5jcHAKQEAgLTIwLDM0ICsyMCwyOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldvcmtRdWV1ZS5oIgogCisjaW5jbHVkZSA8c3lzL3RpbWVyZmQuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogCi1jbGFzcyBUaW1lcldvcmtJdGVtIHsKLXB1YmxpYzoKLSAgICBUaW1l
cldvcmtJdGVtKGludCB0aW1lcklELCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwg
V29ya1F1ZXVlKiBxdWV1ZSkKLSAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQotICAgICAg
ICAsIG1fcXVldWUocXVldWUpCi0gICAgICAgICwgbV90aW1lcklEKHRpbWVySUQpCi0gICAgewot
ICAgIH0KLSAgICB+VGltZXJXb3JrSXRlbSgpIHsgfQotCi0gICAgRnVuY3Rpb248dm9pZCgpPiBm
dW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KLSAgICBXb3JrUXVldWUqIHF1
ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9xdWV1ZTsgfQotCi0gICAgaW50IHRpbWVySUQoKSBjb25z
dCB7IHJldHVybiBtX3RpbWVySUQ7IH0KLQotcHJpdmF0ZToKLSAgICBGdW5jdGlvbjx2b2lkKCk+
IG1fZnVuY3Rpb247Ci0gICAgV29ya1F1ZXVlKiBtX3F1ZXVlOwotICAgIGludCBtX3RpbWVySUQ7
Ci19OwotCiBzdGF0aWMgY29uc3QgaW50IGludmFsaWRTb2NrZXREZXNjcmlwdG9yID0gLTE7CiBz
dGF0aWMgY29uc3QgaW50IHRocmVhZE1lc3NhZ2VTaXplID0gMTsKIHN0YXRpYyBjb25zdCBjaGFy
IGZpbmlzaFRocmVhZE1lc3NhZ2VbXSA9ICJGIjsKIHN0YXRpYyBjb25zdCBjaGFyIHdha3VwVGhy
ZWFkTWVzc2FnZVtdID0gIlciOwogCitQYXNzT3duUHRyPFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRl
bT4gV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiBmdW5j
dGlvbiwgZG91YmxlIGV4cGlyZVRpbWUpCit7CisgICAgaWYgKGV4cGlyZVRpbWUgPCAwKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZXJXb3Jr
SXRlbShmdW5jdGlvbiwgZXhwaXJlVGltZSkpOworfQorCitXb3JrUXVldWU6OlRpbWVyV29ya0l0
ZW06OlRpbWVyV29ya0l0ZW0oRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgZG91YmxlIGV4cGly
ZVRpbWUpCisgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAgICwgbV9leHBpcmVUaW1lKGV4
cGlyZVRpbWUpCit7Cit9CisKIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29u
c3QgY2hhciogbmFtZSkKIHsKICAgICBpbnQgZmRzWzJdOwpAQCAtOTEsNyArODUsNyBAQCB2b2lk
IFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpCiB7CiAgICAgZmRfc2V0IHJl
YWRGaWxlRGVzY3JpcHRvclNldCA9IG1fZmlsZURlc2NyaXB0b3JTZXQ7CiAKLSAgICBpZiAoc2Vs
ZWN0KG1fbWF4RmlsZURlc2NyaXB0b3IgKyAxLCAmcmVhZEZpbGVEZXNjcmlwdG9yU2V0LCAwLCAw
LCAwKSA+PSAwKSB7CisgICAgaWYgKHNlbGVjdChtX21heEZpbGVEZXNjcmlwdG9yICsgMSwgJnJl
YWRGaWxlRGVzY3JpcHRvclNldCwgMCwgMCwgZ2V0TmV4dFRpbWVPdXQoKSkgPj0gMCkgewogICAg
ICAgICBpZiAoRkRfSVNTRVQobV9yZWFkRnJvbVBpcGVEZXNjcmlwdG9yLCAmcmVhZEZpbGVEZXNj
cmlwdG9yU2V0KSkgewogICAgICAgICAgICAgY2hhciByZWFkQnVmW3RocmVhZE1lc3NhZ2VTaXpl
XTsKICAgICAgICAgICAgIGlmIChyZWFkKG1fcmVhZEZyb21QaXBlRGVzY3JpcHRvciwgcmVhZEJ1
ZiwgdGhyZWFkTWVzc2FnZVNpemUpID09IC0xKQpAQCAtMTA1LDYgKzk5LDYxIEBAIHZvaWQgV29y
a1F1ZXVlOjpwZXJmb3JtRmlsZURlc2NyaXB0b3JXb3JrKCkKICAgICB9CiB9CiAKK2RvdWJsZSBX
b3JrUXVldWU6OmdldEN1cnJlbnRUaW1lKCkKK3sKKyAgICBzdHJ1Y3QgdGltZXZhbCB0aW1lVmFs
dWU7CisgICAgaWYgKGdldHRpbWVvZmRheSgmdGltZVZhbHVlLCAwKSA9PSAtMSkgeworICAgICAg
ICBMT0dfRVJST1IoIkZhaWxlZCB0byBnZXQgY3VycmVudCB0aW1lICglZCkiLCBlcnJubyk7Cisg
ICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gdGltZVZhbHVlLnR2X3NlYyAr
IChzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWVWYWx1ZS50dl91c2VjKSAvIDEwMDAwMDApOworfQor
CitzdHJ1Y3QgdGltZXZhbCogV29ya1F1ZXVlOjpnZXROZXh0VGltZU91dCgpCit7CisgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdGltZXJXb3JrSXRlbXNMb2NrKTsKKyAgICBpZiAobV90aW1lcldv
cmtJdGVtcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3RhdGljIHN0cnVj
dCB0aW1ldmFsIHRpbWVWYWx1ZTsKKyAgICB0aW1lVmFsdWUudHZfc2VjID0gMTsKKyAgICB0aW1l
VmFsdWUudHZfdXNlYyA9IDA7CisgICAgZG91YmxlIHRpbWVPdXQgPSBtX3RpbWVyV29ya0l0ZW1z
WzBdLT5leHBpcmVUaW1lKCkgLSBnZXRDdXJyZW50VGltZSgpOworICAgIGlmICh0aW1lT3V0ID4g
MCkgeworICAgICAgICB0aW1lVmFsdWUudHZfc2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4odGltZU91
dCk7CisgICAgICAgIHRpbWVWYWx1ZS50dl91c2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4oKHRpbWVP
dXQgLSB0aW1lVmFsdWUudHZfc2VjKSAqIDEwMDAwMDApOworICAgIH0KKworICAgIHJldHVybiAm
dGltZVZhbHVlOworfQorCit2b2lkIFdvcmtRdWV1ZTo6cGVyZm9ybVRpbWVyV29yaygpCit7Cisg
ICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9jaygpOworCisgICAgaWYgKG1fdGltZXJXb3JrSXRl
bXMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLnVubG9jaygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gZ2V0Q3Vy
cmVudFRpbWUoKTsKKyAgICBWZWN0b3I8T3duUHRyPFRpbWVyV29ya0l0ZW0+ID4gdGltZXJXb3Jr
SXRlbXM7CisgICAgbV90aW1lcldvcmtJdGVtcy5zd2FwKHRpbWVyV29ya0l0ZW1zKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGltZXJXb3JrSXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgaWYgKCF0aW1lcldvcmtJdGVtc1tpXS0+ZXhwaXJlZChjdXJyZW50VGltZSkpIHsKKyAg
ICAgICAgICAgIG1fdGltZXJXb3JrSXRlbXMuYXBwZW5kKHRpbWVyV29ya0l0ZW1zW2ldLnJlbGVh
c2UoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIG1fdGlt
ZXJXb3JrSXRlbXNMb2NrLnVubG9jaygpOworICAgICAgICB0aW1lcldvcmtJdGVtc1tpXS0+ZGlz
cGF0Y2goKTsKKyAgICAgICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9jaygpOworICAgIH0KKyAg
ICBtX3RpbWVyV29ya0l0ZW1zTG9jay51bmxvY2soKTsKK30KKwogdm9pZCBXb3JrUXVldWU6OnNl
bmRNZXNzYWdlVG9UaHJlYWQoY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAod3JpdGUo
bV93cml0ZVRvUGlwZURlc2NyaXB0b3IsIG1lc3NhZ2UsIHRocmVhZE1lc3NhZ2VTaXplKSA9PSAt
MSkKQEAgLTExNSw2ICsxNjQsNyBAQCB2b2lkKiBXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZChX
b3JrUXVldWUqIHdvcmtRdWV1ZSkKIHsKICAgICB3aGlsZSAod29ya1F1ZXVlLT5tX3RocmVhZExv
b3ApIHsKICAgICAgICAgd29ya1F1ZXVlLT5wZXJmb3JtV29yaygpOworICAgICAgICB3b3JrUXVl
dWUtPnBlcmZvcm1UaW1lcldvcmsoKTsKICAgICAgICAgd29ya1F1ZXVlLT5wZXJmb3JtRmlsZURl
c2NyaXB0b3JXb3JrKCk7CiAgICAgfQogCkBAIC0xNTMsMjEgKzIwMywyMSBAQCB2b2lkIFdvcmtR
dWV1ZTo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAgICAgc2Vu
ZE1lc3NhZ2VUb1RocmVhZCh3YWt1cFRocmVhZE1lc3NhZ2UpOwogfQogCi1ib29sIFdvcmtRdWV1
ZTo6dGltZXJGaXJlZCh2b2lkKiBkYXRhKQordm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJE
ZWxheShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5KQogewot
ICAgIFRpbWVyV29ya0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxUaW1lcldvcmtJdGVtKj4oZGF0
YSk7Ci0gICAgaWYgKGl0ZW0gJiYgaXRlbS0+cXVldWUoKS0+bV9pc1ZhbGlkKSB7Ci0gICAgICAg
IGl0ZW0tPnF1ZXVlKCktPmRpc3BhdGNoKGl0ZW0tPmZ1bmN0aW9uKCkpOwotICAgICAgICBpdGVt
LT5xdWV1ZSgpLT5tX3RpbWVycy50YWtlKGl0ZW0tPnRpbWVySUQoKSk7Ci0gICAgICAgIGRlbGV0
ZSBpdGVtOwotICAgIH0KKyAgICBpZiAoZGVsYXkgPCAwKQorICAgICAgICByZXR1cm47CiAKLSAg
ICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VMOwotfQorICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3dvcmtJdGVtUXVldWVMb2NrKTsKKyAgICBPd25QdHI8VGltZXJXb3JrSXRlbT4gdGltZXJX
b3JrSXRlbSA9IFRpbWVyV29ya0l0ZW06OmNyZWF0ZShmdW5jdGlvbiwgZ2V0Q3VycmVudFRpbWUo
KSArIGRlbGF5KTsKKyAgICBpZiAoIXRpbWVyV29ya0l0ZW0pCisgICAgICAgIHJldHVybjsKIAot
dm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxheShjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5KQotewotICAgIHN0YXRpYyBpbnQgdGltZXJJZCA9IDE7
Ci0gICAgbV90aW1lcnMuc2V0KHRpbWVySWQsIGFkb3B0UHRyKGVjb3JlX3RpbWVyX2FkZChkZWxh
eSwgcmVpbnRlcnByZXRfY2FzdDxFY29yZV9UYXNrX0NiPih0aW1lckZpcmVkKSwgbmV3IFRpbWVy
V29ya0l0ZW0odGltZXJJZCwgZnVuY3Rpb24sIHRoaXMpKSkpOwotICAgIHRpbWVySWQrKzsKKyAg
ICBzaXplX3QgcG9zaXRpb24gPSAwOworICAgIGZvciAoOyBwb3NpdGlvbiA8IG1fdGltZXJXb3Jr
SXRlbXMuc2l6ZSgpOyBwb3NpdGlvbisrKQorICAgICAgICBpZiAodGltZXJXb3JrSXRlbS0+ZXhw
aXJlVGltZSgpIDwgbV90aW1lcldvcmtJdGVtc1twb3NpdGlvbl0tPmV4cGlyZVRpbWUoKSkKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgbV90aW1lcldvcmtJdGVtcy5pbnNlcnQocG9zaXRpb24s
IHRpbWVyV29ya0l0ZW0ucmVsZWFzZSgpKTsKKyAgICBzZW5kTWVzc2FnZVRvVGhyZWFkKHdha3Vw
VGhyZWFkTWVzc2FnZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161120</attachid>
            <date>2012-08-28 19:46:02 -0700</date>
            <delta_ts>2012-08-31 04:10:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120829114548.patch</filename>
            <type>text/plain</type>
            <size>9574</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTFhN2I0YzExNzI5ZjZl
MDI3N2Y3MTdjMzk2ZTcyZjRkMmRmNjg0OS4uMzM0NDc5N2QyZjIzYjcwYWU0ZmMyNjViYTg1Njc2
OTRjNGQ4ODFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTI4ICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIFVJIFByb2Nl
c3MgaXMgY3Jhc2hlZCBhbmQgV2ViUHJvY2VzcydzIGVjb3JlIG1haW4gbG9vcCBpcyB2ZXJ5Cisg
ICAgICAgIGJ1c3kgb3IgbG9ja3VwIGFsc28sIHdhdGNoZG9jQ2FsbGJhY2soKSBmdW5jdGlvbiBp
biB0aGUKKyAgICAgICAgQ2hpbGRQcm9jZXNzLmNwcCBkb2Vzbid0IHRyaWdnZXJlZC4gQW5kIHRo
aXMgaXMgYmVjYXVzZSBvZiB0aGF0CisgICAgICAgIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRl
bGF5KCkgZnVuY3Rpb24gdXNlcyBlY29yZSB0aW1lciBmb3IgZ2V0dGluZworICAgICAgICB0aW1l
ciBldmVudC4KKworICAgICAgICBGb3IgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgYmV0d2VlbiB0
aGUgZGlzcGF0Y2hBZnRlckRlbGF5KCkgYW5kIGVjb3JlCisgICAgICAgIG1haW4gbG9vcCwgbmV3
IHRpbWVyIGV2ZW50IG1lY2hhbmlzbSBpcyBhZGRlZCB0byBXb3JrUXVldWUgbWFpbiBsb29wLgor
CisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6CisgICAgICAgIChUaW1lcldvcmtJdGVt
KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6ZGlzcGF0Y2gpOgorICAgICAg
ICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpleHBpcmVUaW1lKToKKyAgICAgICAgKFdvcmtR
dWV1ZTo6VGltZXJXb3JrSXRlbTo6ZXhwaXJlZCk6CisgICAgICAgIChXb3JrUXVldWUpOgorICAg
ICAgICAqIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwOgorICAgICAgICAoV29ya1F1ZXVl
OjpUaW1lcldvcmtJdGVtOjpjcmVhdGUpOgorICAgICAgICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJ
dGVtOjpUaW1lcldvcmtJdGVtKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNj
cmlwdG9yV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OmdldEN1cnJlbnRUaW1lKToKKyAgICAg
ICAgKFdvcmtRdWV1ZTo6Z2V0TmV4dFRpbWVPdXQpOgorICAgICAgICAoV29ya1F1ZXVlOjpwZXJm
b3JtVGltZXJXb3JrKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6d29ya1F1ZXVlVGhyZWFkKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KToKKwogMjAxMi0wOC0yOCAgUmlr
IENhYmFuaWVyICA8Y2FiYW5pZXJAYWRvYmUuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfQ1NT
X0NPTVBPU0lUSU5HIGZsYWcgdG8gV2ViS2l0MiBwcm9qZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dv
cmtRdWV1ZS5oCmluZGV4IDVmZjdkMzljY2NmNDFjZTQ1ODMyNzUzYmY4ZTc5NmI1MjViNDFkMmUu
LmM1ZDFmYzc2OGYxMTk0M2M4NjFmZGNmNTU3NjY3ODFjZmJkNjkzZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL1dvcmtRdWV1ZS5oCkBAIC0xODcsNiArMTg3LDIxIEBAIHByaXZhdGU6CiAgICAgSGFz
aE1hcDxpbnQsIFZlY3RvcjxFdmVudFNvdXJjZSo+ID4gbV9ldmVudFNvdXJjZXM7CiAgICAgdHlw
ZWRlZiBIYXNoTWFwPGludCwgVmVjdG9yPEV2ZW50U291cmNlKj4gPjo6aXRlcmF0b3IgRXZlbnRT
b3VyY2VJdGVyYXRvcjsgCiAjZWxpZiBQTEFURk9STShFRkwpCisgICAgY2xhc3MgVGltZXJXb3Jr
SXRlbSB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxUaW1lcldvcmtJ
dGVtPiBjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiwgZG91YmxlIGV4cGlyZVRpbWUpOworICAgICAg
ICB2b2lkIGRpc3BhdGNoKCkgeyBtX2Z1bmN0aW9uKCk7IH0KKyAgICAgICAgZG91YmxlIGV4cGly
ZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cGlyZVRpbWU7IH0KKyAgICAgICAgYm9vbCBleHBp
cmVkKGRvdWJsZSBjdXJyZW50VGltZSkgY29uc3QgeyByZXR1cm4gY3VycmVudFRpbWUgPj0gbV9l
eHBpcmVUaW1lOyB9CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIFRpbWVyV29ya0l0ZW0oRnVu
Y3Rpb248dm9pZCgpPiwgZG91YmxlIGV4cGlyZVRpbWUpOworCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOworICAgICAgICBkb3VibGUgbV9leHBpcmVU
aW1lOworICAgIH07CisKICAgICBmZF9zZXQgbV9maWxlRGVzY3JpcHRvclNldDsKICAgICBpbnQg
bV9tYXhGaWxlRGVzY3JpcHRvcjsKICAgICBpbnQgbV9yZWFkRnJvbVBpcGVEZXNjcmlwdG9yOwpA
QCAtMTk5LDEzICsyMTQsMTYgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9zb2NrZXREZXNjcmlwdG9y
OwogICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9zb2NrZXRFdmVudEhhbmRsZXI7CiAKLSAgICBIYXNo
TWFwPGludCwgT3duUHRyPEVjb3JlX1RpbWVyPiA+IG1fdGltZXJzOworICAgIFZlY3RvcjxPd25Q
dHI8VGltZXJXb3JrSXRlbT4gPiBtX3RpbWVyV29ya0l0ZW1zOworICAgIE11dGV4IG1fdGltZXJX
b3JrSXRlbXNMb2NrOwogCiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvVGhyZWFkKGNvbnN0IGNoYXIq
KTsKICAgICBzdGF0aWMgdm9pZCogd29ya1F1ZXVlVGhyZWFkKFdvcmtRdWV1ZSopOwogICAgIHZv
aWQgcGVyZm9ybVdvcmsoKTsKICAgICB2b2lkIHBlcmZvcm1GaWxlRGVzY3JpcHRvcldvcmsoKTsK
LSAgICBzdGF0aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqKTsKKyAgICBzdGF0aWMgZG91YmxlIGdl
dEN1cnJlbnRUaW1lKCk7CisgICAgc3RydWN0IHRpbWV2YWwqIGdldE5leHRUaW1lT3V0KCk7Cisg
ICAgdm9pZCBwZXJmb3JtVGltZXJXb3JrKCk7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAKaW5kZXggNDFmZmVkZjUzMzFhMmEyZWVm
ZDZiOGM3ZjRmOGZiMGI3Y2Y0NDYxYi4uMjJiMDdmZGY1NWQ4NGVhYWI0ZjlkOGRlZjhjZGU2MWEy
NDA4MWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1
ZUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5j
cHAKQEAgLTIwLDM0ICsyMCwyOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldv
cmtRdWV1ZS5oIgogCisjaW5jbHVkZSA8c3lzL3RpbWVyZmQuaD4KICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogCi1jbGFzcyBUaW1lcldvcmtJdGVtIHsKLXB1YmxpYzoKLSAgICBUaW1lcldv
cmtJdGVtKGludCB0aW1lcklELCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgV29y
a1F1ZXVlKiBxdWV1ZSkKLSAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQotICAgICAgICAs
IG1fcXVldWUocXVldWUpCi0gICAgICAgICwgbV90aW1lcklEKHRpbWVySUQpCi0gICAgewotICAg
IH0KLSAgICB+VGltZXJXb3JrSXRlbSgpIHsgfQotCi0gICAgRnVuY3Rpb248dm9pZCgpPiBmdW5j
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KLSAgICBXb3JrUXVldWUqIHF1ZXVl
KCkgY29uc3QgeyByZXR1cm4gbV9xdWV1ZTsgfQotCi0gICAgaW50IHRpbWVySUQoKSBjb25zdCB7
IHJldHVybiBtX3RpbWVySUQ7IH0KLQotcHJpdmF0ZToKLSAgICBGdW5jdGlvbjx2b2lkKCk+IG1f
ZnVuY3Rpb247Ci0gICAgV29ya1F1ZXVlKiBtX3F1ZXVlOwotICAgIGludCBtX3RpbWVySUQ7Ci19
OwotCiBzdGF0aWMgY29uc3QgaW50IGludmFsaWRTb2NrZXREZXNjcmlwdG9yID0gLTE7CiBzdGF0
aWMgY29uc3QgaW50IHRocmVhZE1lc3NhZ2VTaXplID0gMTsKIHN0YXRpYyBjb25zdCBjaGFyIGZp
bmlzaFRocmVhZE1lc3NhZ2VbXSA9ICJGIjsKIHN0YXRpYyBjb25zdCBjaGFyIHdha3VwVGhyZWFk
TWVzc2FnZVtdID0gIlciOwogCitQYXNzT3duUHRyPFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbT4g
V29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlv
biwgZG91YmxlIGV4cGlyZVRpbWUpCit7CisgICAgaWYgKGV4cGlyZVRpbWUgPCAwKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZXJXb3JrSXRl
bShmdW5jdGlvbiwgZXhwaXJlVGltZSkpOworfQorCitXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06
OlRpbWVyV29ya0l0ZW0oRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgZG91YmxlIGV4cGlyZVRp
bWUpCisgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAgICwgbV9leHBpcmVUaW1lKGV4cGly
ZVRpbWUpCit7Cit9CisKIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3Qg
Y2hhciogbmFtZSkKIHsKICAgICBpbnQgZmRzWzJdOwpAQCAtOTEsNyArODUsNyBAQCB2b2lkIFdv
cmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpCiB7CiAgICAgZmRfc2V0IHJlYWRG
aWxlRGVzY3JpcHRvclNldCA9IG1fZmlsZURlc2NyaXB0b3JTZXQ7CiAKLSAgICBpZiAoc2VsZWN0
KG1fbWF4RmlsZURlc2NyaXB0b3IgKyAxLCAmcmVhZEZpbGVEZXNjcmlwdG9yU2V0LCAwLCAwLCAw
KSA+PSAwKSB7CisgICAgaWYgKHNlbGVjdChtX21heEZpbGVEZXNjcmlwdG9yICsgMSwgJnJlYWRG
aWxlRGVzY3JpcHRvclNldCwgMCwgMCwgZ2V0TmV4dFRpbWVPdXQoKSkgPj0gMCkgewogICAgICAg
ICBpZiAoRkRfSVNTRVQobV9yZWFkRnJvbVBpcGVEZXNjcmlwdG9yLCAmcmVhZEZpbGVEZXNjcmlw
dG9yU2V0KSkgewogICAgICAgICAgICAgY2hhciByZWFkQnVmW3RocmVhZE1lc3NhZ2VTaXplXTsK
ICAgICAgICAgICAgIGlmIChyZWFkKG1fcmVhZEZyb21QaXBlRGVzY3JpcHRvciwgcmVhZEJ1Ziwg
dGhyZWFkTWVzc2FnZVNpemUpID09IC0xKQpAQCAtMTA1LDYgKzk5LDc1IEBAIHZvaWQgV29ya1F1
ZXVlOjpwZXJmb3JtRmlsZURlc2NyaXB0b3JXb3JrKCkKICAgICB9CiB9CiAKK2RvdWJsZSBXb3Jr
UXVldWU6OmdldEN1cnJlbnRUaW1lKCkKK3sKKyAgICBzdHJ1Y3QgdGltZXZhbCB0aW1lVmFsdWU7
CisgICAgaWYgKGdldHRpbWVvZmRheSgmdGltZVZhbHVlLCAwKSA9PSAtMSkgeworICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBnZXQgY3VycmVudCB0aW1lICglZCkiLCBlcnJubyk7CisgICAg
ICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gdGltZVZhbHVlLnR2X3NlYyArIChz
dGF0aWNfY2FzdDxkb3VibGU+KHRpbWVWYWx1ZS50dl91c2VjKSAvIDEwMDAwMDApOworfQorCitz
dHJ1Y3QgdGltZXZhbCogV29ya1F1ZXVlOjpnZXROZXh0VGltZU91dCgpCit7CisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGltZXJXb3JrSXRlbXNMb2NrKTsKKyAgICBpZiAobV90aW1lcldvcmtJ
dGVtcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3RhdGljIHN0cnVjdCB0
aW1ldmFsIHRpbWVWYWx1ZTsKKyAgICB0aW1lVmFsdWUudHZfc2VjID0gMTsKKyAgICB0aW1lVmFs
dWUudHZfdXNlYyA9IDA7CisgICAgZG91YmxlIHRpbWVPdXQgPSBtX3RpbWVyV29ya0l0ZW1zWzBd
LT5leHBpcmVUaW1lKCkgLSBnZXRDdXJyZW50VGltZSgpOworICAgIGlmICh0aW1lT3V0ID4gMCkg
eworICAgICAgICB0aW1lVmFsdWUudHZfc2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4odGltZU91dCk7
CisgICAgICAgIHRpbWVWYWx1ZS50dl91c2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4oKHRpbWVPdXQg
LSB0aW1lVmFsdWUudHZfc2VjKSAqIDEwMDAwMDApOworICAgIH0KKworICAgIHJldHVybiAmdGlt
ZVZhbHVlOworfQorCit2b2lkIFdvcmtRdWV1ZTo6cGVyZm9ybVRpbWVyV29yaygpCit7CisgICAg
Ly8gUHJvdGVjdHMgbV90aW1lcldvcmtJdGVtcy4KKyAgICBtX3RpbWVyV29ya0l0ZW1zTG9jay5s
b2NrKCk7CisKKyAgICBpZiAobV90aW1lcldvcmtJdGVtcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
bV90aW1lcldvcmtJdGVtc0xvY2sudW5sb2NrKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBnZXRDdXJyZW50VGltZSgpOworICAgIFZlY3RvcjxP
d25QdHI8VGltZXJXb3JrSXRlbT4gPiB0aW1lcldvcmtJdGVtczsKKworICAgIC8vIENvcGllcyBh
bGwgdGhlIHRpbWVyIHdvcmsgaXRlbXMgaW4gbV90aW1lcldvcmtJdGVtcyB0byBsb2NhbCB2ZWN0
b3IuCisgICAgbV90aW1lcldvcmtJdGVtcy5zd2FwKHRpbWVyV29ya0l0ZW1zKTsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgdGltZXJXb3JrSXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgaWYgKCF0aW1lcldvcmtJdGVtc1tpXS0+ZXhwaXJlZChjdXJyZW50VGltZSkpIHsKKyAgICAg
ICAgICAgIC8vIElmIGEgdGltZXIgd29yayBpdGVtIGRvZXMgbm90IGV4cGlyZWQsIGtlZXAgaXQg
dG8gdGhlIG1fdGltZXJXb3JrSXRlbXMuCisgICAgICAgICAgICAvLyBtX3RpbWVyV29ya0l0ZW1z
IHNob3VsZCBiZSBvcmRlcmVkIGJ5IGV4cGlyZSB0aW1lLgorICAgICAgICAgICAgc2l6ZV90IHBv
c2l0aW9uID0gMDsKKyAgICAgICAgICAgIGZvciAoOyBwb3NpdGlvbiA8IG1fdGltZXJXb3JrSXRl
bXMuc2l6ZSgpOyArK3Bvc2l0aW9uKQorICAgICAgICAgICAgICAgIGlmICh0aW1lcldvcmtJdGVt
c1tpXS0+ZXhwaXJlVGltZSgpIDwgbV90aW1lcldvcmtJdGVtc1twb3NpdGlvbl0tPmV4cGlyZVRp
bWUoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIG1fdGltZXJX
b3JrSXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCB0aW1lcldvcmtJdGVtc1tpXS5yZWxlYXNlKCkpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiBhIHRpbWVy
IHdvcmsgaXRlbSBleHBpcmVkLCBkaXNwYXRjaCB0aGUgZnVuY3Rpb24gb2YgdGhlIHdvcmsgaXRl
bS4KKyAgICAgICAgLy8gQmVmb3JlIGRpc3BhdGNoaW5nLCBtX3RpbWVyV29ya0l0ZW1zTG9jayBz
aG91bGQgdW5sb2NrIGZvciBwcmV2ZW50aW5nIGRlYWRsb2NrLAorICAgICAgICAvLyBiZWNhdXNl
IGl0IGNhbiBiZSBhY2Nlc3NlZCBpbnNpZGUgdGhlIGZ1bmN0aW9uIG9mIHRoZSB0aW1lciB3b3Jr
IGl0ZW0gZGlzcGF0Y2hlZC4KKyAgICAgICAgbV90aW1lcldvcmtJdGVtc0xvY2sudW5sb2NrKCk7
CisgICAgICAgIHRpbWVyV29ya0l0ZW1zW2ldLT5kaXNwYXRjaCgpOworICAgICAgICBtX3RpbWVy
V29ya0l0ZW1zTG9jay5sb2NrKCk7CisgICAgfQorCisgICAgbV90aW1lcldvcmtJdGVtc0xvY2su
dW5sb2NrKCk7Cit9CisKIHZvaWQgV29ya1F1ZXVlOjpzZW5kTWVzc2FnZVRvVGhyZWFkKGNvbnN0
IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgaWYgKHdyaXRlKG1fd3JpdGVUb1BpcGVEZXNjcmlwdG9y
LCBtZXNzYWdlLCB0aHJlYWRNZXNzYWdlU2l6ZSkgPT0gLTEpCkBAIC0xMTUsNiArMTc4LDcgQEAg
dm9pZCogV29ya1F1ZXVlOjp3b3JrUXVldWVUaHJlYWQoV29ya1F1ZXVlKiB3b3JrUXVldWUpCiB7
CiAgICAgd2hpbGUgKHdvcmtRdWV1ZS0+bV90aHJlYWRMb29wKSB7CiAgICAgICAgIHdvcmtRdWV1
ZS0+cGVyZm9ybVdvcmsoKTsKKyAgICAgICAgd29ya1F1ZXVlLT5wZXJmb3JtVGltZXJXb3JrKCk7
CiAgICAgICAgIHdvcmtRdWV1ZS0+cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpOwogICAgIH0K
IApAQCAtMTUzLDIxICsyMTcsMjIgQEAgdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQogICAgIHNlbmRNZXNzYWdlVG9UaHJlYWQod2FrdXBU
aHJlYWRNZXNzYWdlKTsKIH0KIAotYm9vbCBXb3JrUXVldWU6OnRpbWVyRmlyZWQodm9pZCogZGF0
YSkKK3ZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkoY29uc3QgRnVuY3Rpb248dm9p
ZCgpPiYgZnVuY3Rpb24sIGRvdWJsZSBkZWxheSkKIHsKLSAgICBUaW1lcldvcmtJdGVtKiBpdGVt
ID0gc3RhdGljX2Nhc3Q8VGltZXJXb3JrSXRlbSo+KGRhdGEpOwotICAgIGlmIChpdGVtICYmIGl0
ZW0tPnF1ZXVlKCktPm1faXNWYWxpZCkgewotICAgICAgICBpdGVtLT5xdWV1ZSgpLT5kaXNwYXRj
aChpdGVtLT5mdW5jdGlvbigpKTsKLSAgICAgICAgaXRlbS0+cXVldWUoKS0+bV90aW1lcnMudGFr
ZShpdGVtLT50aW1lcklEKCkpOwotICAgICAgICBkZWxldGUgaXRlbTsKLSAgICB9CisgICAgaWYg
KGRlbGF5IDwgMCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgcmV0dXJuIEVDT1JFX0NBTExCQUNL
X0NBTkNFTDsKLX0KKyAgICBNdXRleExvY2tlciBsb2NrZXIobV93b3JrSXRlbVF1ZXVlTG9jayk7
CisgICAgT3duUHRyPFRpbWVyV29ya0l0ZW0+IHRpbWVyV29ya0l0ZW0gPSBUaW1lcldvcmtJdGVt
OjpjcmVhdGUoZnVuY3Rpb24sIGdldEN1cnJlbnRUaW1lKCkgKyBkZWxheSk7CisgICAgaWYgKCF0
aW1lcldvcmtJdGVtKQorICAgICAgICByZXR1cm47CiAKLXZvaWQgV29ya1F1ZXVlOjpkaXNwYXRj
aEFmdGVyRGVsYXkoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24sIGRvdWJsZSBkZWxh
eSkKLXsKLSAgICBzdGF0aWMgaW50IHRpbWVySWQgPSAxOwotICAgIG1fdGltZXJzLnNldCh0aW1l
cklkLCBhZG9wdFB0cihlY29yZV90aW1lcl9hZGQoZGVsYXksIHJlaW50ZXJwcmV0X2Nhc3Q8RWNv
cmVfVGFza19DYj4odGltZXJGaXJlZCksIG5ldyBUaW1lcldvcmtJdGVtKHRpbWVySWQsIGZ1bmN0
aW9uLCB0aGlzKSkpKTsKLSAgICB0aW1lcklkKys7CisgICAgLy8gbV90aW1lcldvcmtJdGVtcyBz
aG91bGQgYmUgb3JkZXJlZCBieSBleHBpcmUgdGltZS4KKyAgICBzaXplX3QgcG9zaXRpb24gPSAw
OworICAgIGZvciAoOyBwb3NpdGlvbiA8IG1fdGltZXJXb3JrSXRlbXMuc2l6ZSgpOyArK3Bvc2l0
aW9uKQorICAgICAgICBpZiAodGltZXJXb3JrSXRlbS0+ZXhwaXJlVGltZSgpIDwgbV90aW1lcldv
cmtJdGVtc1twb3NpdGlvbl0tPmV4cGlyZVRpbWUoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisg
ICAgbV90aW1lcldvcmtJdGVtcy5pbnNlcnQocG9zaXRpb24sIHRpbWVyV29ya0l0ZW0ucmVsZWFz
ZSgpKTsKKyAgICBzZW5kTWVzc2FnZVRvVGhyZWFkKHdha3VwVGhyZWFkTWVzc2FnZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161659</attachid>
            <date>2012-08-31 04:10:10 -0700</date>
            <delta_ts>2012-09-11 02:30:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120831200953.patch</filename>
            <type>text/plain</type>
            <size>9599</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmUyMzY1NDQyNjIwMTNi
MWJjYWQ1MTRjYjQxM2EzMzYzOTg3Njg2MC4uYzE2NjUzZjViNTdkZmI1ZWJiYTk1ZmQ1NTJjNzBh
ZGYxNWZhY2E0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTMxICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIFVJIFByb2Nl
c3MgaXMgY3Jhc2hlZCBhbmQgV2ViUHJvY2VzcydzIGVjb3JlIG1haW4gbG9vcCBpcyB2ZXJ5Cisg
ICAgICAgIGJ1c3kgb3IgbG9ja3VwIGFsc28sIHdhdGNoZG9jQ2FsbGJhY2soKSBmdW5jdGlvbiBp
biB0aGUKKyAgICAgICAgQ2hpbGRQcm9jZXNzLmNwcCBkb2Vzbid0IHRyaWdnZXJlZC4gQW5kIHRo
aXMgaXMgYmVjYXVzZSBvZiB0aGF0CisgICAgICAgIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRl
bGF5KCkgZnVuY3Rpb24gdXNlcyBlY29yZSB0aW1lciBmb3IgZ2V0dGluZworICAgICAgICB0aW1l
ciBldmVudC4KKworICAgICAgICBGb3IgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgYmV0d2VlbiB0
aGUgZGlzcGF0Y2hBZnRlckRlbGF5KCkgYW5kIGVjb3JlCisgICAgICAgIG1haW4gbG9vcCwgbmV3
IHRpbWVyIGV2ZW50IG1lY2hhbmlzbSBpcyBhZGRlZCB0byBXb3JrUXVldWUgbWFpbiBsb29wLgor
CisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6CisgICAgICAgIChUaW1lcldvcmtJdGVt
KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6ZGlzcGF0Y2gpOgorICAgICAg
ICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpleHBpcmVUaW1lKToKKyAgICAgICAgKFdvcmtR
dWV1ZTo6VGltZXJXb3JrSXRlbTo6ZXhwaXJlZCk6CisgICAgICAgIChXb3JrUXVldWUpOgorICAg
ICAgICAqIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwOgorICAgICAgICAoV29ya1F1ZXVl
OjpUaW1lcldvcmtJdGVtOjpjcmVhdGUpOgorICAgICAgICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJ
dGVtOjpUaW1lcldvcmtJdGVtKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNj
cmlwdG9yV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OmdldEN1cnJlbnRUaW1lKToKKyAgICAg
ICAgKFdvcmtRdWV1ZTo6Z2V0TmV4dFRpbWVPdXQpOgorICAgICAgICAoV29ya1F1ZXVlOjpwZXJm
b3JtVGltZXJXb3JrKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6d29ya1F1ZXVlVGhyZWFkKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KToKKwogMjAxMi0wOC0zMCAgTWFy
ayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIH5KU05QT2Jq
ZWN0IHNob3VsZCBjYWxsIGludmFsaWRhdGUoKSBpZiBpdCBoYXNuJ3QgYmVlbiBjYWxsZWQgYWxy
ZWFkeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmggYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAppbmRleCA1ZmY3ZDM5Y2NjZjQxY2U0
NTgzMjc1M2JmOGU3OTZiNTI1YjQxZDJlLi5jNWQxZmM3NjhmMTE5NDNjODYxZmRjZjU1NzY2Nzgx
Y2ZiZDY5M2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaApAQCAtMTg3LDYgKzE4
NywyMSBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8aW50LCBWZWN0b3I8RXZlbnRTb3VyY2UqPiA+
IG1fZXZlbnRTb3VyY2VzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFZlY3RvcjxFdmVudFNv
dXJjZSo+ID46Oml0ZXJhdG9yIEV2ZW50U291cmNlSXRlcmF0b3I7IAogI2VsaWYgUExBVEZPUk0o
RUZMKQorICAgIGNsYXNzIFRpbWVyV29ya0l0ZW0geworICAgIHB1YmxpYzoKKyAgICAgICAgc3Rh
dGljIFBhc3NPd25QdHI8VGltZXJXb3JrSXRlbT4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoKT4sIGRv
dWJsZSBleHBpcmVUaW1lKTsKKyAgICAgICAgdm9pZCBkaXNwYXRjaCgpIHsgbV9mdW5jdGlvbigp
OyB9CisgICAgICAgIGRvdWJsZSBleHBpcmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9leHBpcmVU
aW1lOyB9CisgICAgICAgIGJvb2wgZXhwaXJlZChkb3VibGUgY3VycmVudFRpbWUpIGNvbnN0IHsg
cmV0dXJuIGN1cnJlbnRUaW1lID49IG1fZXhwaXJlVGltZTsgfQorCisgICAgcHJvdGVjdGVkOgor
ICAgICAgICBUaW1lcldvcmtJdGVtKEZ1bmN0aW9uPHZvaWQoKT4sIGRvdWJsZSBleHBpcmVUaW1l
KTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsK
KyAgICAgICAgZG91YmxlIG1fZXhwaXJlVGltZTsKKyAgICB9OworCiAgICAgZmRfc2V0IG1fZmls
ZURlc2NyaXB0b3JTZXQ7CiAgICAgaW50IG1fbWF4RmlsZURlc2NyaXB0b3I7CiAgICAgaW50IG1f
cmVhZEZyb21QaXBlRGVzY3JpcHRvcjsKQEAgLTE5OSwxMyArMjE0LDE2IEBAIHByaXZhdGU6CiAg
ICAgaW50IG1fc29ja2V0RGVzY3JpcHRvcjsKICAgICBGdW5jdGlvbjx2b2lkKCk+IG1fc29ja2V0
RXZlbnRIYW5kbGVyOwogCi0gICAgSGFzaE1hcDxpbnQsIE93blB0cjxFY29yZV9UaW1lcj4gPiBt
X3RpbWVyczsKKyAgICBWZWN0b3I8T3duUHRyPFRpbWVyV29ya0l0ZW0+ID4gbV90aW1lcldvcmtJ
dGVtczsKKyAgICBNdXRleCBtX3RpbWVyV29ya0l0ZW1zTG9jazsKIAogICAgIHZvaWQgc2VuZE1l
c3NhZ2VUb1RocmVhZChjb25zdCBjaGFyKik7CiAgICAgc3RhdGljIHZvaWQqIHdvcmtRdWV1ZVRo
cmVhZChXb3JrUXVldWUqKTsKICAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7CiAgICAgdm9pZCBwZXJm
b3JtRmlsZURlc2NyaXB0b3JXb3JrKCk7Ci0gICAgc3RhdGljIGJvb2wgdGltZXJGaXJlZCh2b2lk
Kik7CisgICAgc3RhdGljIGRvdWJsZSBnZXRDdXJyZW50VGltZSgpOworICAgIHN0cnVjdCB0aW1l
dmFsKiBnZXROZXh0VGltZU91dCgpOworICAgIHZvaWQgcGVyZm9ybVRpbWVyV29yaygpOwogI2Vu
ZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1
ZXVlRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3Bw
CmluZGV4IDQxZmZlZGY1MzMxYTJhMmVlZmQ2YjhjN2Y0ZjhmYjBiN2NmNDQ2MWIuLjIyYjA3ZmRm
NTVkODRlYWFiNGY5ZDhkZWY4Y2RlNjFhMjQwODFiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0yMCwzNCArMjAsMjggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrUXVldWUuaCIKIAorI2luY2x1ZGUgPHN5cy90aW1l
cmZkLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAotY2xhc3MgVGltZXJXb3JrSXRl
bSB7Ci1wdWJsaWM6Ci0gICAgVGltZXJXb3JrSXRlbShpbnQgdGltZXJJRCwgY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24sIFdvcmtRdWV1ZSogcXVldWUpCi0gICAgICAgIDogbV9mdW5j
dGlvbihmdW5jdGlvbikKLSAgICAgICAgLCBtX3F1ZXVlKHF1ZXVlKQotICAgICAgICAsIG1fdGlt
ZXJJRCh0aW1lcklEKQotICAgIHsKLSAgICB9Ci0gICAgflRpbWVyV29ya0l0ZW0oKSB7IH0KLQot
ICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9u
OyB9Ci0gICAgV29ya1F1ZXVlKiBxdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVldWU7IH0KLQot
ICAgIGludCB0aW1lcklEKCkgY29uc3QgeyByZXR1cm4gbV90aW1lcklEOyB9Ci0KLXByaXZhdGU6
Ci0gICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOwotICAgIFdvcmtRdWV1ZSogbV9xdWV1
ZTsKLSAgICBpbnQgbV90aW1lcklEOwotfTsKLQogc3RhdGljIGNvbnN0IGludCBpbnZhbGlkU29j
a2V0RGVzY3JpcHRvciA9IC0xOwogc3RhdGljIGNvbnN0IGludCB0aHJlYWRNZXNzYWdlU2l6ZSA9
IDE7CiBzdGF0aWMgY29uc3QgY2hhciBmaW5pc2hUaHJlYWRNZXNzYWdlW10gPSAiRiI7CiBzdGF0
aWMgY29uc3QgY2hhciB3YWt1cFRocmVhZE1lc3NhZ2VbXSA9ICJXIjsKIAorUGFzc093blB0cjxX
b3JrUXVldWU6OlRpbWVyV29ya0l0ZW0+IFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6Y3JlYXRl
KEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24sIGRvdWJsZSBleHBpcmVUaW1lKQoreworICAgIGlm
IChleHBpcmVUaW1lIDwgMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFRpbWVyV29ya0l0ZW0oZnVuY3Rpb24sIGV4cGlyZVRpbWUpKTsKK30KKwor
V29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpUaW1lcldvcmtJdGVtKEZ1bmN0aW9uPHZvaWQoKT4g
ZnVuY3Rpb24sIGRvdWJsZSBleHBpcmVUaW1lKQorICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikK
KyAgICAsIG1fZXhwaXJlVGltZShleHBpcmVUaW1lKQoreworfQorCiB2b2lkIFdvcmtRdWV1ZTo6
cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUpCiB7CiAgICAgaW50IGZkc1syXTsK
QEAgLTkxLDcgKzg1LDcgQEAgdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1GaWxlRGVzY3JpcHRvcldv
cmsoKQogewogICAgIGZkX3NldCByZWFkRmlsZURlc2NyaXB0b3JTZXQgPSBtX2ZpbGVEZXNjcmlw
dG9yU2V0OwogCi0gICAgaWYgKHNlbGVjdChtX21heEZpbGVEZXNjcmlwdG9yICsgMSwgJnJlYWRG
aWxlRGVzY3JpcHRvclNldCwgMCwgMCwgMCkgPj0gMCkgeworICAgIGlmIChzZWxlY3QobV9tYXhG
aWxlRGVzY3JpcHRvciArIDEsICZyZWFkRmlsZURlc2NyaXB0b3JTZXQsIDAsIDAsIGdldE5leHRU
aW1lT3V0KCkpID49IDApIHsKICAgICAgICAgaWYgKEZEX0lTU0VUKG1fcmVhZEZyb21QaXBlRGVz
Y3JpcHRvciwgJnJlYWRGaWxlRGVzY3JpcHRvclNldCkpIHsKICAgICAgICAgICAgIGNoYXIgcmVh
ZEJ1Zlt0aHJlYWRNZXNzYWdlU2l6ZV07CiAgICAgICAgICAgICBpZiAocmVhZChtX3JlYWRGcm9t
UGlwZURlc2NyaXB0b3IsIHJlYWRCdWYsIHRocmVhZE1lc3NhZ2VTaXplKSA9PSAtMSkKQEAgLTEw
NSw2ICs5OSw3NSBAQCB2b2lkIFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygp
CiAgICAgfQogfQogCitkb3VibGUgV29ya1F1ZXVlOjpnZXRDdXJyZW50VGltZSgpCit7CisgICAg
c3RydWN0IHRpbWV2YWwgdGltZVZhbHVlOworICAgIGlmIChnZXR0aW1lb2ZkYXkoJnRpbWVWYWx1
ZSwgMCkgPT0gLTEpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQg
dGltZSAoJWQpIiwgZXJybm8pOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0
dXJuIHRpbWVWYWx1ZS50dl9zZWMgKyAoc3RhdGljX2Nhc3Q8ZG91YmxlPih0aW1lVmFsdWUudHZf
dXNlYykgLyAxMDAwMDAwKTsKK30KKworc3RydWN0IHRpbWV2YWwqIFdvcmtRdWV1ZTo6Z2V0TmV4
dFRpbWVPdXQoKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbWVyV29ya0l0ZW1zTG9j
ayk7CisgICAgaWYgKG1fdGltZXJXb3JrSXRlbXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIHN0YXRpYyBzdHJ1Y3QgdGltZXZhbCB0aW1lVmFsdWU7CisgICAgdGltZVZhbHVl
LnR2X3NlYyA9IDE7CisgICAgdGltZVZhbHVlLnR2X3VzZWMgPSAwOworICAgIGRvdWJsZSB0aW1l
T3V0ID0gbV90aW1lcldvcmtJdGVtc1swXS0+ZXhwaXJlVGltZSgpIC0gZ2V0Q3VycmVudFRpbWUo
KTsKKyAgICBpZiAodGltZU91dCA+IDApIHsKKyAgICAgICAgdGltZVZhbHVlLnR2X3NlYyA9IHN0
YXRpY19jYXN0PGxvbmc+KHRpbWVPdXQpOworICAgICAgICB0aW1lVmFsdWUudHZfdXNlYyA9IHN0
YXRpY19jYXN0PGxvbmc+KCh0aW1lT3V0IC0gdGltZVZhbHVlLnR2X3NlYykgKiAxMDAwMDAwKTsK
KyAgICB9CisKKyAgICByZXR1cm4gJnRpbWVWYWx1ZTsKK30KKwordm9pZCBXb3JrUXVldWU6OnBl
cmZvcm1UaW1lcldvcmsoKQoreworICAgIC8vIFByb3RlY3RzIG1fdGltZXJXb3JrSXRlbXMuCisg
ICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9jaygpOworCisgICAgaWYgKG1fdGltZXJXb3JrSXRl
bXMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLnVubG9jaygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gZ2V0Q3Vy
cmVudFRpbWUoKTsKKyAgICBWZWN0b3I8T3duUHRyPFRpbWVyV29ya0l0ZW0+ID4gdGltZXJXb3Jr
SXRlbXM7CisKKyAgICAvLyBDb3BpZXMgYWxsIHRoZSB0aW1lciB3b3JrIGl0ZW1zIGluIG1fdGlt
ZXJXb3JrSXRlbXMgdG8gbG9jYWwgdmVjdG9yLgorICAgIG1fdGltZXJXb3JrSXRlbXMuc3dhcCh0
aW1lcldvcmtJdGVtcyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbWVyV29ya0l0
ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICghdGltZXJXb3JrSXRlbXNbaV0tPmV4cGly
ZWQoY3VycmVudFRpbWUpKSB7CisgICAgICAgICAgICAvLyBJZiBhIHRpbWVyIHdvcmsgaXRlbSBk
b2VzIG5vdCBleHBpcmVkLCBrZWVwIGl0IHRvIHRoZSBtX3RpbWVyV29ya0l0ZW1zLgorICAgICAg
ICAgICAgLy8gbV90aW1lcldvcmtJdGVtcyBzaG91bGQgYmUgb3JkZXJlZCBieSBleHBpcmUgdGlt
ZS4KKyAgICAgICAgICAgIHNpemVfdCBwb3NpdGlvbiA9IDA7CisgICAgICAgICAgICBmb3IgKDsg
cG9zaXRpb24gPCBtX3RpbWVyV29ya0l0ZW1zLnNpemUoKTsgKytwb3NpdGlvbikKKyAgICAgICAg
ICAgICAgICBpZiAodGltZXJXb3JrSXRlbXNbaV0tPmV4cGlyZVRpbWUoKSA8IG1fdGltZXJXb3Jr
SXRlbXNbcG9zaXRpb25dLT5leHBpcmVUaW1lKCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICBtX3RpbWVyV29ya0l0ZW1zLmluc2VydChwb3NpdGlvbiwgdGltZXJX
b3JrSXRlbXNbaV0ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgLy8gSWYgYSB0aW1lciB3b3JrIGl0ZW0gZXhwaXJlZCwgZGlzcGF0Y2ggdGhl
IGZ1bmN0aW9uIG9mIHRoZSB3b3JrIGl0ZW0uCisgICAgICAgIC8vIEJlZm9yZSBkaXNwYXRjaGlu
ZywgbV90aW1lcldvcmtJdGVtc0xvY2sgc2hvdWxkIHVubG9jayBmb3IgcHJldmVudGluZyBkZWFk
bG9jaywKKyAgICAgICAgLy8gYmVjYXVzZSBpdCBjYW4gYmUgYWNjZXNzZWQgaW5zaWRlIHRoZSBm
dW5jdGlvbiBvZiB0aGUgdGltZXIgd29yayBpdGVtIGRpc3BhdGNoZWQuCisgICAgICAgIG1fdGlt
ZXJXb3JrSXRlbXNMb2NrLnVubG9jaygpOworICAgICAgICB0aW1lcldvcmtJdGVtc1tpXS0+ZGlz
cGF0Y2goKTsKKyAgICAgICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9jaygpOworICAgIH0KKwor
ICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLnVubG9jaygpOworfQorCiB2b2lkIFdvcmtRdWV1ZTo6
c2VuZE1lc3NhZ2VUb1RocmVhZChjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIGlmICh3cml0
ZShtX3dyaXRlVG9QaXBlRGVzY3JpcHRvciwgbWVzc2FnZSwgdGhyZWFkTWVzc2FnZVNpemUpID09
IC0xKQpAQCAtMTE1LDYgKzE3OCw3IEBAIHZvaWQqIFdvcmtRdWV1ZTo6d29ya1F1ZXVlVGhyZWFk
KFdvcmtRdWV1ZSogd29ya1F1ZXVlKQogewogICAgIHdoaWxlICh3b3JrUXVldWUtPm1fdGhyZWFk
TG9vcCkgewogICAgICAgICB3b3JrUXVldWUtPnBlcmZvcm1Xb3JrKCk7CisgICAgICAgIHdvcmtR
dWV1ZS0+cGVyZm9ybVRpbWVyV29yaygpOwogICAgICAgICB3b3JrUXVldWUtPnBlcmZvcm1GaWxl
RGVzY3JpcHRvcldvcmsoKTsKICAgICB9CiAKQEAgLTE1MywyMSArMjE3LDIyIEBAIHZvaWQgV29y
a1F1ZXVlOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKICAgICBz
ZW5kTWVzc2FnZVRvVGhyZWFkKHdha3VwVGhyZWFkTWVzc2FnZSk7CiB9CiAKLWJvb2wgV29ya1F1
ZXVlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRl
ckRlbGF5KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBkb3VibGUgZGVsYXkpCiB7
Ci0gICAgVGltZXJXb3JrSXRlbSogaXRlbSA9IHN0YXRpY19jYXN0PFRpbWVyV29ya0l0ZW0qPihk
YXRhKTsKLSAgICBpZiAoaXRlbSAmJiBpdGVtLT5xdWV1ZSgpLT5tX2lzVmFsaWQpIHsKLSAgICAg
ICAgaXRlbS0+cXVldWUoKS0+ZGlzcGF0Y2goaXRlbS0+ZnVuY3Rpb24oKSk7Ci0gICAgICAgIGl0
ZW0tPnF1ZXVlKCktPm1fdGltZXJzLnRha2UoaXRlbS0+dGltZXJJRCgpKTsKLSAgICAgICAgZGVs
ZXRlIGl0ZW07Ci0gICAgfQorICAgIGlmIChkZWxheSA8IDApCisgICAgICAgIHJldHVybjsKIAot
ICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19CisgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fd29ya0l0ZW1RdWV1ZUxvY2spOworICAgIE93blB0cjxUaW1lcldvcmtJdGVtPiB0aW1l
cldvcmtJdGVtID0gVGltZXJXb3JrSXRlbTo6Y3JlYXRlKGZ1bmN0aW9uLCBnZXRDdXJyZW50VGlt
ZSgpICsgZGVsYXkpOworICAgIGlmICghdGltZXJXb3JrSXRlbSkKKyAgICAgICAgcmV0dXJuOwog
Ci12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mIGZ1bmN0aW9uLCBkb3VibGUgZGVsYXkpCi17Ci0gICAgc3RhdGljIGludCB0aW1lcklkID0g
MTsKLSAgICBtX3RpbWVycy5zZXQodGltZXJJZCwgYWRvcHRQdHIoZWNvcmVfdGltZXJfYWRkKGRl
bGF5LCByZWludGVycHJldF9jYXN0PEVjb3JlX1Rhc2tfQ2I+KHRpbWVyRmlyZWQpLCBuZXcgVGlt
ZXJXb3JrSXRlbSh0aW1lcklkLCBmdW5jdGlvbiwgdGhpcykpKSk7Ci0gICAgdGltZXJJZCsrOwor
ICAgIC8vIG1fdGltZXJXb3JrSXRlbXMgc2hvdWxkIGJlIG9yZGVyZWQgYnkgZXhwaXJlIHRpbWUu
CisgICAgc2l6ZV90IHBvc2l0aW9uID0gMDsKKyAgICBmb3IgKDsgcG9zaXRpb24gPCBtX3RpbWVy
V29ya0l0ZW1zLnNpemUoKTsgKytwb3NpdGlvbikKKyAgICAgICAgaWYgKHRpbWVyV29ya0l0ZW0t
PmV4cGlyZVRpbWUoKSA8IG1fdGltZXJXb3JrSXRlbXNbcG9zaXRpb25dLT5leHBpcmVUaW1lKCkp
CisgICAgICAgICAgICBicmVhazsKKworICAgIG1fdGltZXJXb3JrSXRlbXMuaW5zZXJ0KHBvc2l0
aW9uLCB0aW1lcldvcmtJdGVtLnJlbGVhc2UoKSk7CisgICAgc2VuZE1lc3NhZ2VUb1RocmVhZCh3
YWt1cFRocmVhZE1lc3NhZ2UpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163311</attachid>
            <date>2012-09-11 02:30:11 -0700</date>
            <delta_ts>2012-09-12 03:19:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91179-20120911182944.patch</filename>
            <type>text/plain</type>
            <size>9269</size>
            <attacher name="Byungwoo Lee">bw80.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGMxNDhmZjEzM2MzZWZl
MThkZDdjZDA4ZGE2ZTE3M2MzNzc1NTYyNi4uMzYzNjk0OTJlZjNlODliNDM0MjMyZjFjNTQwYmJi
Zjk1YWFhY2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTMxICBCeXVu
Z3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KCkgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIFVJIFByb2Nl
c3MgaXMgY3Jhc2hlZCBhbmQgV2ViUHJvY2VzcydzIGVjb3JlIG1haW4gbG9vcCBpcyB2ZXJ5Cisg
ICAgICAgIGJ1c3kgb3IgbG9ja3VwIGFsc28sIHdhdGNoZG9jQ2FsbGJhY2soKSBmdW5jdGlvbiBp
biB0aGUKKyAgICAgICAgQ2hpbGRQcm9jZXNzLmNwcCBkb2Vzbid0IHRyaWdnZXJlZC4gQW5kIHRo
aXMgaXMgYmVjYXVzZSBvZiB0aGF0CisgICAgICAgIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRl
bGF5KCkgZnVuY3Rpb24gdXNlcyBlY29yZSB0aW1lciBmb3IgZ2V0dGluZworICAgICAgICB0aW1l
ciBldmVudC4KKworICAgICAgICBGb3IgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgYmV0d2VlbiB0
aGUgZGlzcGF0Y2hBZnRlckRlbGF5KCkgYW5kIGVjb3JlCisgICAgICAgIG1haW4gbG9vcCwgbmV3
IHRpbWVyIGV2ZW50IG1lY2hhbmlzbSBpcyBhZGRlZCB0byBXb3JrUXVldWUgbWFpbiBsb29wLgor
CisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6CisgICAgICAgIChUaW1lcldvcmtJdGVt
KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbTo6ZGlzcGF0Y2gpOgorICAgICAg
ICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpleHBpcmVUaW1lKToKKyAgICAgICAgKFdvcmtR
dWV1ZTo6VGltZXJXb3JrSXRlbTo6ZXhwaXJlZCk6CisgICAgICAgIChXb3JrUXVldWUpOgorICAg
ICAgICAqIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwOgorICAgICAgICAoV29ya1F1ZXVl
OjpUaW1lcldvcmtJdGVtOjpjcmVhdGUpOgorICAgICAgICAoV29ya1F1ZXVlOjpUaW1lcldvcmtJ
dGVtOjpUaW1lcldvcmtJdGVtKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNj
cmlwdG9yV29yayk6CisgICAgICAgIChXb3JrUXVldWU6OmdldEN1cnJlbnRUaW1lKToKKyAgICAg
ICAgKFdvcmtRdWV1ZTo6Z2V0TmV4dFRpbWVPdXQpOgorICAgICAgICAoV29ya1F1ZXVlOjpwZXJm
b3JtVGltZXJXb3JrKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6d29ya1F1ZXVlVGhyZWFkKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KToKKwogMjAxMi0wOS0wOSAgRW1p
bCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIE5vZGU6Omdl
dFJlY3QvZ2V0UGl4ZWxTbmFwcGVkUmVjdCBhbmQgcmVtb3ZlIENvbnRhaW5lck5vZGU6OmdldFJl
Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKaW5kZXggZDZlOTI5NTc3MjM5YzJlOTRm
MjA3OGFiNjE1ZGQ5M2FkN2IxYzc0ZS4uNmE1Yzc1NmIzNGM5ZDRmMDlkOGQyMmUyOTRmYWRiY2Y1
NjVlYzdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKQEAgLTE4Nyw2ICsxODcs
MjEgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPGludCwgVmVjdG9yPEV2ZW50U291cmNlKj4gPiBt
X2V2ZW50U291cmNlczsKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBWZWN0b3I8RXZlbnRTb3Vy
Y2UqPiA+OjppdGVyYXRvciBFdmVudFNvdXJjZUl0ZXJhdG9yOyAKICNlbGlmIFBMQVRGT1JNKEVG
TCkKKyAgICBjbGFzcyBUaW1lcldvcmtJdGVtIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyBQYXNzT3duUHRyPFRpbWVyV29ya0l0ZW0+IGNyZWF0ZShGdW5jdGlvbjx2b2lkKCk+LCBkb3Vi
bGUgZXhwaXJlVGltZSk7CisgICAgICAgIHZvaWQgZGlzcGF0Y2goKSB7IG1fZnVuY3Rpb24oKTsg
fQorICAgICAgICBkb3VibGUgZXhwaXJlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwaXJlVGlt
ZTsgfQorICAgICAgICBib29sIGV4cGlyZWQoZG91YmxlIGN1cnJlbnRUaW1lKSBjb25zdCB7IHJl
dHVybiBjdXJyZW50VGltZSA+PSBtX2V4cGlyZVRpbWU7IH0KKworICAgIHByb3RlY3RlZDoKKyAg
ICAgICAgVGltZXJXb3JrSXRlbShGdW5jdGlvbjx2b2lkKCk+LCBkb3VibGUgZXhwaXJlVGltZSk7
CisKKyAgICBwcml2YXRlOgorICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247Cisg
ICAgICAgIGRvdWJsZSBtX2V4cGlyZVRpbWU7CisgICAgfTsKKwogICAgIGZkX3NldCBtX2ZpbGVE
ZXNjcmlwdG9yU2V0OwogICAgIGludCBtX21heEZpbGVEZXNjcmlwdG9yOwogICAgIGludCBtX3Jl
YWRGcm9tUGlwZURlc2NyaXB0b3I7CkBAIC0xOTksMTMgKzIxNCwxNyBAQCBwcml2YXRlOgogICAg
IGludCBtX3NvY2tldERlc2NyaXB0b3I7CiAgICAgRnVuY3Rpb248dm9pZCgpPiBtX3NvY2tldEV2
ZW50SGFuZGxlcjsKIAotICAgIEhhc2hNYXA8aW50LCBPd25QdHI8RWNvcmVfVGltZXI+ID4gbV90
aW1lcnM7CisgICAgVmVjdG9yPE93blB0cjxUaW1lcldvcmtJdGVtPiA+IG1fdGltZXJXb3JrSXRl
bXM7CisgICAgTXV0ZXggbV90aW1lcldvcmtJdGVtc0xvY2s7CiAKICAgICB2b2lkIHNlbmRNZXNz
YWdlVG9UaHJlYWQoY29uc3QgY2hhciopOwogICAgIHN0YXRpYyB2b2lkKiB3b3JrUXVldWVUaHJl
YWQoV29ya1F1ZXVlKik7CiAgICAgdm9pZCBwZXJmb3JtV29yaygpOwogICAgIHZvaWQgcGVyZm9y
bUZpbGVEZXNjcmlwdG9yV29yaygpOwotICAgIHN0YXRpYyBib29sIHRpbWVyRmlyZWQodm9pZCop
OworICAgIHN0YXRpYyBkb3VibGUgZ2V0Q3VycmVudFRpbWUoKTsKKyAgICBzdHJ1Y3QgdGltZXZh
bCogZ2V0TmV4dFRpbWVPdXQoKTsKKyAgICB2b2lkIHBlcmZvcm1UaW1lcldvcmsoKTsKKyAgICB2
b2lkIGluc2VydFRpbWVyV29ya0l0ZW0oUGFzc093blB0cjxUaW1lcldvcmtJdGVtPik7CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVl
dWVFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAK
aW5kZXggNDFmZmVkZjUzMzFhMmEyZWVmZDZiOGM3ZjRmOGZiMGI3Y2Y0NDYxYi4uNmM1MDViNDFj
N2M3MDIxYzAyNDE1ZmEwODE5NGUyY2NkODBiNWQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAKQEAgLTIwLDM0ICsyMCwyOSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtRdWV1ZS5oIgogCisjaW5jbHVkZSA8c3lzL3RpbWVy
ZmQuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi1jbGFzcyBUaW1lcldvcmtJdGVt
IHsKLXB1YmxpYzoKLSAgICBUaW1lcldvcmtJdGVtKGludCB0aW1lcklELCBjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbiwgV29ya1F1ZXVlKiBxdWV1ZSkKLSAgICAgICAgOiBtX2Z1bmN0
aW9uKGZ1bmN0aW9uKQotICAgICAgICAsIG1fcXVldWUocXVldWUpCi0gICAgICAgICwgbV90aW1l
cklEKHRpbWVySUQpCi0gICAgewotICAgIH0KLSAgICB+VGltZXJXb3JrSXRlbSgpIHsgfQotCi0g
ICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb247
IH0KLSAgICBXb3JrUXVldWUqIHF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9xdWV1ZTsgfQotCi0g
ICAgaW50IHRpbWVySUQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVySUQ7IH0KLQotcHJpdmF0ZToK
LSAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247Ci0gICAgV29ya1F1ZXVlKiBtX3F1ZXVl
OwotICAgIGludCBtX3RpbWVySUQ7Ci19OworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CiBzdGF0aWMgY29uc3QgaW50IGludmFsaWRTb2NrZXREZXNjcmlwdG9yID0gLTE7CiBzdGF0aWMg
Y29uc3QgaW50IHRocmVhZE1lc3NhZ2VTaXplID0gMTsKIHN0YXRpYyBjb25zdCBjaGFyIGZpbmlz
aFRocmVhZE1lc3NhZ2VbXSA9ICJGIjsKIHN0YXRpYyBjb25zdCBjaGFyIHdha3VwVGhyZWFkTWVz
c2FnZVtdID0gIlciOwogCitQYXNzT3duUHRyPFdvcmtRdWV1ZTo6VGltZXJXb3JrSXRlbT4gV29y
a1F1ZXVlOjpUaW1lcldvcmtJdGVtOjpjcmVhdGUoRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwg
ZG91YmxlIGV4cGlyZVRpbWUpCit7CisgICAgaWYgKGV4cGlyZVRpbWUgPCAwKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZXJXb3JrSXRlbShm
dW5jdGlvbiwgZXhwaXJlVGltZSkpOworfQorCitXb3JrUXVldWU6OlRpbWVyV29ya0l0ZW06OlRp
bWVyV29ya0l0ZW0oRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgZG91YmxlIGV4cGlyZVRpbWUp
CisgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAgICwgbV9leHBpcmVUaW1lKGV4cGlyZVRp
bWUpCit7Cit9CisKIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hh
ciogbmFtZSkKIHsKICAgICBpbnQgZmRzWzJdOwpAQCAtOTEsNyArODYsNyBAQCB2b2lkIFdvcmtR
dWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpCiB7CiAgICAgZmRfc2V0IHJlYWRGaWxl
RGVzY3JpcHRvclNldCA9IG1fZmlsZURlc2NyaXB0b3JTZXQ7CiAKLSAgICBpZiAoc2VsZWN0KG1f
bWF4RmlsZURlc2NyaXB0b3IgKyAxLCAmcmVhZEZpbGVEZXNjcmlwdG9yU2V0LCAwLCAwLCAwKSA+
PSAwKSB7CisgICAgaWYgKHNlbGVjdChtX21heEZpbGVEZXNjcmlwdG9yICsgMSwgJnJlYWRGaWxl
RGVzY3JpcHRvclNldCwgMCwgMCwgZ2V0TmV4dFRpbWVPdXQoKSkgPj0gMCkgewogICAgICAgICBp
ZiAoRkRfSVNTRVQobV9yZWFkRnJvbVBpcGVEZXNjcmlwdG9yLCAmcmVhZEZpbGVEZXNjcmlwdG9y
U2V0KSkgewogICAgICAgICAgICAgY2hhciByZWFkQnVmW3RocmVhZE1lc3NhZ2VTaXplXTsKICAg
ICAgICAgICAgIGlmIChyZWFkKG1fcmVhZEZyb21QaXBlRGVzY3JpcHRvciwgcmVhZEJ1ZiwgdGhy
ZWFkTWVzc2FnZVNpemUpID09IC0xKQpAQCAtMTA1LDYgKzEwMCw3NCBAQCB2b2lkIFdvcmtRdWV1
ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9yV29yaygpCiAgICAgfQogfQogCitzdHJ1Y3QgdGltZXZh
bCogV29ya1F1ZXVlOjpnZXROZXh0VGltZU91dCgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdGltZXJXb3JrSXRlbXNMb2NrKTsKKyAgICBpZiAobV90aW1lcldvcmtJdGVtcy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3RhdGljIHN0cnVjdCB0aW1ldmFsIHRpbWVW
YWx1ZTsKKyAgICB0aW1lVmFsdWUudHZfc2VjID0gMDsKKyAgICB0aW1lVmFsdWUudHZfdXNlYyA9
IDA7CisgICAgZG91YmxlIHRpbWVPdXQgPSBtX3RpbWVyV29ya0l0ZW1zWzBdLT5leHBpcmVUaW1l
KCkgLSBjdXJyZW50VGltZSgpOworICAgIGlmICh0aW1lT3V0ID4gMCkgeworICAgICAgICB0aW1l
VmFsdWUudHZfc2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4odGltZU91dCk7CisgICAgICAgIHRpbWVW
YWx1ZS50dl91c2VjID0gc3RhdGljX2Nhc3Q8bG9uZz4oKHRpbWVPdXQgLSB0aW1lVmFsdWUudHZf
c2VjKSAqIDEwMDAwMDApOworICAgIH0KKworICAgIHJldHVybiAmdGltZVZhbHVlOworfQorCit2
b2lkIFdvcmtRdWV1ZTo6aW5zZXJ0VGltZXJXb3JrSXRlbShQYXNzT3duUHRyPFRpbWVyV29ya0l0
ZW0+IGl0ZW0pCit7CisgICAgaWYgKCFpdGVtKQorICAgICAgICByZXR1cm47CisKKyAgICBzaXpl
X3QgcG9zaXRpb24gPSAwOworCisgICAgLy8gbV90aW1lcldvcmtJdGVtcyBzaG91bGQgYmUgb3Jk
ZXJlZCBieSBleHBpcmUgdGltZS4KKyAgICBmb3IgKDsgcG9zaXRpb24gPCBtX3RpbWVyV29ya0l0
ZW1zLnNpemUoKTsgKytwb3NpdGlvbikKKyAgICAgICAgaWYgKGl0ZW0tPmV4cGlyZVRpbWUoKSA8
IG1fdGltZXJXb3JrSXRlbXNbcG9zaXRpb25dLT5leHBpcmVUaW1lKCkpCisgICAgICAgICAgICBi
cmVhazsKKworICAgIG1fdGltZXJXb3JrSXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCBpdGVtKTsKK30K
Kwordm9pZCBXb3JrUXVldWU6OnBlcmZvcm1UaW1lcldvcmsoKQoreworICAgIC8vIFByb3RlY3Rz
IG1fdGltZXJXb3JrSXRlbXMuCisgICAgbV90aW1lcldvcmtJdGVtc0xvY2subG9jaygpOworCisg
ICAgaWYgKG1fdGltZXJXb3JrSXRlbXMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdGltZXJXb3Jr
SXRlbXNMb2NrLnVubG9jaygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZG91Ymxl
IGN1cnJlbnQgPSBjdXJyZW50VGltZSgpOworICAgIFZlY3RvcjxPd25QdHI8VGltZXJXb3JrSXRl
bT4gPiB0aW1lcldvcmtJdGVtczsKKworICAgIC8vIENvcGllcyBhbGwgdGhlIHRpbWVyIHdvcmsg
aXRlbXMgaW4gbV90aW1lcldvcmtJdGVtcyB0byBsb2NhbCB2ZWN0b3IuCisgICAgbV90aW1lcldv
cmtJdGVtcy5zd2FwKHRpbWVyV29ya0l0ZW1zKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdGltZXJXb3JrSXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCF0aW1lcldvcmtJ
dGVtc1tpXS0+ZXhwaXJlZChjdXJyZW50KSkgeworICAgICAgICAgICAgLy8gSWYgYSB0aW1lciB3
b3JrIGl0ZW0gZG9lcyBub3QgZXhwaXJlZCwga2VlcCBpdCB0byB0aGUgbV90aW1lcldvcmtJdGVt
cy4KKyAgICAgICAgICAgIC8vIG1fdGltZXJXb3JrSXRlbXMgc2hvdWxkIGJlIG9yZGVyZWQgYnkg
ZXhwaXJlIHRpbWUuCisgICAgICAgICAgICBpbnNlcnRUaW1lcldvcmtJdGVtKHRpbWVyV29ya0l0
ZW1zW2ldLnJlbGVhc2UoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIElmIGEgdGltZXIgd29yayBpdGVtIGV4cGlyZWQsIGRpc3BhdGNoIHRoZSBmdW5j
dGlvbiBvZiB0aGUgd29yayBpdGVtLgorICAgICAgICAvLyBCZWZvcmUgZGlzcGF0Y2hpbmcsIG1f
dGltZXJXb3JrSXRlbXNMb2NrIHNob3VsZCB1bmxvY2sgZm9yIHByZXZlbnRpbmcgZGVhZGxvY2ss
CisgICAgICAgIC8vIGJlY2F1c2UgaXQgY2FuIGJlIGFjY2Vzc2VkIGluc2lkZSB0aGUgZnVuY3Rp
b24gb2YgdGhlIHRpbWVyIHdvcmsgaXRlbSBkaXNwYXRjaGVkLgorICAgICAgICBtX3RpbWVyV29y
a0l0ZW1zTG9jay51bmxvY2soKTsKKyAgICAgICAgdGltZXJXb3JrSXRlbXNbaV0tPmRpc3BhdGNo
KCk7CisgICAgICAgIG1fdGltZXJXb3JrSXRlbXNMb2NrLmxvY2soKTsKKyAgICB9CisKKyAgICBt
X3RpbWVyV29ya0l0ZW1zTG9jay51bmxvY2soKTsKK30KKwogdm9pZCBXb3JrUXVldWU6OnNlbmRN
ZXNzYWdlVG9UaHJlYWQoY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAod3JpdGUobV93
cml0ZVRvUGlwZURlc2NyaXB0b3IsIG1lc3NhZ2UsIHRocmVhZE1lc3NhZ2VTaXplKSA9PSAtMSkK
QEAgLTExNSw2ICsxNzgsNyBAQCB2b2lkKiBXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZChXb3Jr
UXVldWUqIHdvcmtRdWV1ZSkKIHsKICAgICB3aGlsZSAod29ya1F1ZXVlLT5tX3RocmVhZExvb3Ap
IHsKICAgICAgICAgd29ya1F1ZXVlLT5wZXJmb3JtV29yaygpOworICAgICAgICB3b3JrUXVldWUt
PnBlcmZvcm1UaW1lcldvcmsoKTsKICAgICAgICAgd29ya1F1ZXVlLT5wZXJmb3JtRmlsZURlc2Ny
aXB0b3JXb3JrKCk7CiAgICAgfQogCkBAIC0xNTMsMjEgKzIxNywxNiBAQCB2b2lkIFdvcmtRdWV1
ZTo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAgICAgc2VuZE1l
c3NhZ2VUb1RocmVhZCh3YWt1cFRocmVhZE1lc3NhZ2UpOwogfQogCi1ib29sIFdvcmtRdWV1ZTo6
dGltZXJGaXJlZCh2b2lkKiBkYXRhKQordm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxh
eShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5KQogewotICAg
IFRpbWVyV29ya0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxUaW1lcldvcmtJdGVtKj4oZGF0YSk7
Ci0gICAgaWYgKGl0ZW0gJiYgaXRlbS0+cXVldWUoKS0+bV9pc1ZhbGlkKSB7Ci0gICAgICAgIGl0
ZW0tPnF1ZXVlKCktPmRpc3BhdGNoKGl0ZW0tPmZ1bmN0aW9uKCkpOwotICAgICAgICBpdGVtLT5x
dWV1ZSgpLT5tX3RpbWVycy50YWtlKGl0ZW0tPnRpbWVySUQoKSk7Ci0gICAgICAgIGRlbGV0ZSBp
dGVtOwotICAgIH0KKyAgICBpZiAoZGVsYXkgPCAwKQorICAgICAgICByZXR1cm47CiAKLSAgICBy
ZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VMOwotfQorICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3RpbWVyV29ya0l0ZW1zTG9jayk7CisgICAgT3duUHRyPFRpbWVyV29ya0l0ZW0+IHRpbWVyV29y
a0l0ZW0gPSBUaW1lcldvcmtJdGVtOjpjcmVhdGUoZnVuY3Rpb24sIGN1cnJlbnRUaW1lKCkgKyBk
ZWxheSk7CisgICAgaWYgKCF0aW1lcldvcmtJdGVtKQorICAgICAgICByZXR1cm47CiAKLXZvaWQg
V29ya1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24sIGRvdWJsZSBkZWxheSkKLXsKLSAgICBzdGF0aWMgaW50IHRpbWVySWQgPSAxOwotICAg
IG1fdGltZXJzLnNldCh0aW1lcklkLCBhZG9wdFB0cihlY29yZV90aW1lcl9hZGQoZGVsYXksIHJl
aW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIG5ldyBUaW1lcldvcmtJ
dGVtKHRpbWVySWQsIGZ1bmN0aW9uLCB0aGlzKSkpKTsKLSAgICB0aW1lcklkKys7CisgICAgaW5z
ZXJ0VGltZXJXb3JrSXRlbSh0aW1lcldvcmtJdGVtLnJlbGVhc2UoKSk7CisgICAgc2VuZE1lc3Nh
Z2VUb1RocmVhZCh3YWt1cFRocmVhZE1lc3NhZ2UpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>