<?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>28126</bug_id>
          
          <creation_ts>2009-08-09 05:30:35 -0700</creation_ts>
          <short_desc>[Haiku] Adding SharedTimer to WebCore.</short_desc>
          <delta_ts>2009-08-18 20:33:04 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Maxime Simon">simon.maxime</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>leavengood</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138486</commentid>
    <comment_count>0</comment_count>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-09 05:30:35 -0700</bug_when>
    <thetext>Patch to add the SharedTimerHaiku.* files to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138488</commentid>
    <comment_count>1</comment_count>
      <attachid>34412</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-09 05:34:14 -0700</bug_when>
    <thetext>Created attachment 34412
Patch to add the SharedTimer files for Haiku.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138515</commentid>
    <comment_count>2</comment_count>
      <attachid>34412</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-09 08:06:49 -0700</bug_when>
    <thetext>Comment on attachment 34412
Patch to add the SharedTimer files for Haiku.

The compiler won&apos;t read your comments. :)
 // Static instance
 88 SharedTimerHaiku* getSharedTimerHaiku()
you want that to say:
static SharedTimerHaiku* sharedTimerHaiku()
(we don&apos;t tend to use &quot;get&quot; in function names in WebCore.)

Oh, maybe you don&apos;t want it static...  Why is this needed outside of this function?
 52     SharedTimerHaiku* getSharedTimerHaiku();

Also, why doesn&apos;t SharedTimerHaiku implement SharedTimer?

Why does SharedTimerHaiku need to *be* a BMessageFilter, can&apos;t it just have a BMessageFilter member if necessary?

r- because I&apos;m not sure why you needed to diverge from other SharedTimer implementations here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138541</commentid>
    <comment_count>3</comment_count>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-09 11:46:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 34412 [details])
&gt; The compiler won&apos;t read your comments. :)
&gt;  // Static instance
&gt;  88 SharedTimerHaiku* getSharedTimerHaiku()
&gt; you want that to say:
&gt; static SharedTimerHaiku* sharedTimerHaiku()
&gt; (we don&apos;t tend to use &quot;get&quot; in function names in WebCore.)
&gt; 
&gt; Oh, maybe you don&apos;t want it static...  Why is this needed outside of this
&gt; function?
&gt;  52     SharedTimerHaiku* getSharedTimerHaiku();

I think that the purpose of this function is to return a static instance of SharedTimer.

&gt; Also, why doesn&apos;t SharedTimerHaiku implement SharedTimer?
&gt; 
&gt; Why does SharedTimerHaiku need to *be* a BMessageFilter, can&apos;t it just have a
&gt; BMessageFilter member if necessary?

I didn&apos;t implement this class, but it seems that it was designed to fit with the Haiku messaging system. That&apos;s why SharedTimerHaiku needs to be a derivated class of BMessageFilter (in Haiku there is a lot of hook functions to implement when derivating a class).

After this I don&apos;t say that we should keep this as it. I will see how other ports handle SharedTimer and see if we can make something more smooth and light. :)

Regards,
Maxime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138545</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Leavengood">leavengood</who>
    <bug_when>2009-08-09 13:07:16 -0700</bug_when>
    <thetext>I had implemented SharedTimerHaiku differently in my original code and this version was created by Andrea Anzani. I&apos;m not sure if my original would fit better in WebKit but this version may be better in the sense of fitting in with Haiku.

It might be worth looking back in the history on my subversion copy of my old port to see what my original was like. I&apos;m not sure if you have that checked out Maxime, but it is here:

http://ryanleavengood.com/svn/repo/WebKit/trunk/

Unfortunately I don&apos;t see anyway to go back in the history in this dead simple SVN HTTP interface. So you&apos;ll need a copy checked out. If this is too difficult I could probably get a copy of my original SharedTimerHaiku pretty fast.

It might also be worthwhile to look at the commit history to see why Andrea replaced my version with this one. I think it was to sort out some threading issues.

Finally BMessageFilter can be used both directly by passing in a filter_hook function and by subclassing. I think in this case using subclassing is better to easily access the members for the timer function and shouldRun boolean.

http://www.haiku-os.org/legacy-docs/bebook/BMessageFilter.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139332</commentid>
    <comment_count>5</comment_count>
      <attachid>34663</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-12 08:44:25 -0700</bug_when>
    <thetext>Created attachment 34663
Patch to add the SharedTimer file for Haiku.

I still used a BMessageFilter, but as static variable. We now use the generic SharedTimer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139401</commentid>
    <comment_count>6</comment_count>
      <attachid>34663</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 10:33:06 -0700</bug_when>
    <thetext>Comment on attachment 34663
Patch to add the SharedTimer file for Haiku.

+    bigtime_t interval = fireTime - currentTime();
+
+    if (interval &lt; 0)
+        interval = 0;
+    else
+        interval *= 1000;

Should be something like:

bigtime_t millisecondInterval = fireTime - currentTime();
bigtime_t secondInterval = std::max(0, millisecondInterval * 1000);

Important to make the variable names clear as to what they&apos;re holding.

Otherwise looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139750</commentid>
    <comment_count>7</comment_count>
      <attachid>34719</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-13 01:12:47 -0700</bug_when>
    <thetext>Created attachment 34719
Adding the SharedTimer file for WebCore.


---
 2 files changed, 143 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140400</commentid>
    <comment_count>8</comment_count>
      <attachid>34719</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-14 17:43:41 -0700</bug_when>
    <thetext>Comment on attachment 34719
Adding the SharedTimer file for WebCore.

Isn&apos;t this reversed?

     bigtime_t interval = fireTime - currentTime();
 90     bigtime_t milliSecondInterval = interval &lt; 0 ? 0 : interval * 1000;

is currentTime() in nanoseconds?  If so &quot;interval&quot; should be labled as such?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140426</commentid>
    <comment_count>9</comment_count>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-14 22:32:28 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 34719 [details])
&gt; Isn&apos;t this reversed?
&gt; 
&gt;      bigtime_t interval = fireTime - currentTime();
&gt;  90     bigtime_t milliSecondInterval = interval &lt; 0 ? 0 : interval * 1000;
&gt; 
&gt; is currentTime() in nanoseconds?  If so &quot;interval&quot; should be labled as such?

Reversed?

- bigtime_t is a microsecond unit (see extract from the BeBook underneath).
- currentTime() returns a result in seconds (with a precision of a microsecond, see extract from wtf/CurrentTime.cpp below).
- I hope fireTime is in second too.
- Then, the value passed as argument of the BMessageRunner should be a bigtime_t, that&apos;s to say a microsecond value.
- It means that interval should be multiplied by 1,000,000 not 1,000. The milliSecondInterval variable must be renamed to microSecondInterval. And, interval should be a double, not a bigtime_t.

Extract from the BeBook:
typedef int64 bigtime_t
This type records the time in microseconds as a 64-bit integer.

Extract from &lt;wtf/CurrentTime.cpp&gt; :
gettimeofday(&amp;now, &amp;zone);
return static_cast&lt;double&gt;(now.tv_sec) + (double)(now.tv_usec / 1000000.0);

So, if my reasoning is right, this code is wrong but not reversed. :)

Regards,
Maxime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140447</commentid>
    <comment_count>10</comment_count>
      <attachid>34891</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-15 00:46:54 -0700</bug_when>
    <thetext>Created attachment 34891
Adding the SharedTimer file for WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141269</commentid>
    <comment_count>11</comment_count>
      <attachid>34891</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 15:07:18 -0700</bug_when>
    <thetext>Comment on attachment 34891
Adding the SharedTimer file for WebCore.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141318</commentid>
    <comment_count>12</comment_count>
      <attachid>34891</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 16:38:34 -0700</bug_when>
    <thetext>Comment on attachment 34891
Adding the SharedTimer file for WebCore.

Rejecting patch 34891 from commit-queue.  This patch will require manual commit.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;rebase&apos;]&quot;  exit_code: 1  cwd: None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141357</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 19:02:24 -0700</bug_when>
    <thetext>ChangeLog changed since.  bugzilla-tool isn&apos;t smart enough to call resolve-ChangeLogs yet. :(

all 11101 test cases succeeded
Parsing ChangeLog: WebCore/ChangeLog
Updating working directory
/Users/eseidel/Projects/WebKit2/.git/rebase-apply/patch:62: trailing whitespace.
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
error: patch failed: WebCore/ChangeLog:1
error: WebCore/ChangeLog: patch does not apply
&lt;stdin&gt;:62: trailing whitespace.
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
warning: 1 line adds whitespace errors.
rebase refs/remotes/trunk: command returned error: 1

Logging in as eric@webkit.org...
Rejecting patch 34891 from commit-queue.  This patch will require manual commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141373</commentid>
    <comment_count>14</comment_count>
      <attachid>34891</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-18 20:03:41 -0700</bug_when>
    <thetext>Comment on attachment 34891
Adding the SharedTimer file for WebCore.

This patch looks beautiful.  Let&apos;s try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141380</commentid>
    <comment_count>15</comment_count>
      <attachid>34891</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 20:32:59 -0700</bug_when>
    <thetext>Comment on attachment 34891
Adding the SharedTimer file for WebCore.

Clearing flags on attachment: 34891

Committed r47480: &lt;http://trac.webkit.org/changeset/47480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141381</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 20:33:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34412</attachid>
            <date>2009-08-09 05:34:14 -0700</date>
            <delta_ts>2009-08-12 08:44:25 -0700</delta_ts>
            <desc>Patch to add the SharedTimer files for Haiku.</desc>
            <filename>Adding-the-SharedTimer-files-for-WebCore.patch</filename>
            <type>text/plain</type>
            <size>8193</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">RnJvbSAzYjgyMGJkNGU5NGI4YmRmOTE2OWMxYWE4NTIwZWYzODVjNTdkMGNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+
CkRhdGU6IFN1biwgOSBBdWcgMjAwOSAxNDozMjo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZGluZyB0aGUgU2hhcmVkVGltZXIgZmlsZXMgZm9yIFdlYkNvcmUuCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysKIFdlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvU2hhcmVkVGltZXJIYWlrdS5jcHAgfCAgMTMyICsrKysrKysrKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmggICB8
ICAgNTYgKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9T
aGFyZWRUaW1lckhhaWt1LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvU2hhcmVkVGltZXJIYWlrdS5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMWJhMDQ4Li4xZjA3Y2U2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDA5LTA4LTA5ICBNYXhpbWUgU2ltb24gIDxzaW1vbi5tYXhpbWVAZ21haWwuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtIYWlrdV0gQWRk
aW5nIHRoZSBTaGFyZWRUaW1lciBmaWxlcyBmb3IgV2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MTI2CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
aGFyZWRUaW1lckhhaWt1OjpTaGFyZWRUaW1lckhhaWt1KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YXJlZFRpbWVySGFpa3U6OkZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhh
aWt1Ojp+U2hhcmVkVGltZXJIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhh
aWt1OjpzZXRGaXJlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhhaWt1Ojpz
ZXRGaXJlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXJIYWlrdTo6c2V0
U2hvdWxkUnVuKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFNoYXJlZFRpbWVySGFpa3UpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldFNoYXJlZFRpbWVyRmlyZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6c3RvcFNo
YXJlZFRpbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1Lmg6
IEFkZGVkLgorCiAyMDA5LTA4LTA4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vaGFpa3UvU2hhcmVkVGltZXJIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uN2VkN2MzYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvU2hhcmVkVGltZXJIYWlrdS5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQW5kcmVhIEFuemFuaSA8YW5kcmVhLmFuemFuaUBnbWFpbC5jb20+CisgKgor
ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNoYXJlZFRpbWVySGFpa3UuaCIKKworI2luY2x1ZGUgIkN1cnJlbnRUaW1lLmgiCisj
aW5jbHVkZSA8TG9vcGVyLmg+CisjaW5jbHVkZSA8TWVzc2FnZS5oPgorI2luY2x1ZGUgPE1lc3Nh
Z2VSdW5uZXIuaD4KKyNpbmNsdWRlIDxzdXBwb3J0L0xvY2tlci5oPgorI2luY2x1ZGUgPHN1cHBv
cnQvQXV0b2xvY2suaD4KKworCit1bnNpZ25lZCBpbnQgRklSRV9NRVNTQUdFID0gJ2ZpcmUnOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NoYXJlZFRpbWVySGFpa3U6OlNoYXJlZFRpbWVySGFp
a3UoKQorICAgIDogQk1lc3NhZ2VGaWx0ZXIoRklSRV9NRVNTQUdFKQorICAgICwgbV9maXJlVGlt
ZSgwKQorICAgICwgbV9zaG91bGRSdW4odHJ1ZSkKKyAgICAsIG1fdGltZXJGdW5jdGlvbigwKQor
eworfQorCitmaWx0ZXJfcmVzdWx0IFNoYXJlZFRpbWVySGFpa3U6OkZpbHRlcihCTWVzc2FnZSog
bWVzc2FnZSwgQkhhbmRsZXIqKiBfdGFyZ2V0KQoreworICAgIGlmIChtX3RpbWVyRnVuY3Rpb24g
JiYgbV9zaG91bGRSdW4pCisgICAgICAgIG1fdGltZXJGdW5jdGlvbigpOworCisgICAgcmV0dXJu
IEJfU0tJUF9NRVNTQUdFOworfQorCitTaGFyZWRUaW1lckhhaWt1Ojp+U2hhcmVkVGltZXJIYWlr
dSgpCit7Cit9CisKK3ZvaWQgU2hhcmVkVGltZXJIYWlrdTo6c2V0RmlyZVRpbWUoZG91YmxlIGZp
cmVUaW1lKQoreworICAgIG1fZmlyZVRpbWUgPSBmaXJlVGltZTsKKyAgICBpZiAobV9maXJlVGlt
ZSA+IDAgJiYgbV9zaG91bGRSdW4pIHsKKyAgICAgICAgYmlndGltZV90IHNsZWVwVGltZUluU2Vj
b25kcyA9IHN0YXRpY19jYXN0PGJpZ3RpbWVfdD4oKG1fZmlyZVRpbWUgLSBXVEY6OmN1cnJlbnRU
aW1lKCkpICogMTAwMDAwMCk7CisKKyAgICAgICAgLy8gSWYgdGhlIGZpcmUgdGltZSBoYXMgYWxy
ZWFkeSBwYXNzZWQsIGZpcmUgaW1tZWRpYXRlbHkuCisgICAgICAgIGlmIChzbGVlcFRpbWVJblNl
Y29uZHMgPCAwKQorICAgICAgICAgICAgc2xlZXBUaW1lSW5TZWNvbmRzID0gMDsKKworICAgICAg
ICBCTWVzc2FnZVJ1bm5lcjo6U3RhcnRTZW5kaW5nKExvb3BlcigpLCBuZXcgQk1lc3NhZ2UoRklS
RV9NRVNTQUdFKSwgc2xlZXBUaW1lSW5TZWNvbmRzLCAxKTsKKyAgICB9Cit9CisKK3ZvaWQgU2hh
cmVkVGltZXJIYWlrdTo6c2V0RmlyZUZ1bmN0aW9uKHZvaWQgKCpmKSgpKQoreworICAgIG1fdGlt
ZXJGdW5jdGlvbiA9IGY7Cit9CisKK3ZvaWQgU2hhcmVkVGltZXJIYWlrdTo6c2V0U2hvdWxkUnVu
KGJvb2wgc2hvdWxkUnVuKQoreworICAgIG1fc2hvdWxkUnVuID0gc2hvdWxkUnVuOworfQorCisv
LyBTdGF0aWMgaW5zdGFuY2UKK1NoYXJlZFRpbWVySGFpa3UqIGdldFNoYXJlZFRpbWVySGFpa3Uo
KQoreworICAgIC8vIFBsZWFzZSBub3RlIHRoaXMgaXMgc3RpbGwgYW4gZXhwZXJpbWVudGFsIHNv
bHV0aW9uLgorCisgICAgQkxvb3BlciogbG9vcGVyID0gQkxvb3Blcjo6TG9vcGVyRm9yVGhyZWFk
KGZpbmRfdGhyZWFkKDApKTsKKyAgICAvLyBBU1NFUlQobG9vcGVyKTsKKyAgICAvLyBGSVhNRTog
d2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSBjdXJyZW50IGxvb3BlciBoYXMgYSB2YWxpZCBpZiBub3Qg
YWRkIGEgbmV3IG9uZS4KKyAgICAvLyB3ZSBzaG91bGQgYWxzbyBiZSBzdXJlIHRoZSBsb29wZXIg
aXMgYSBCV2luZG93Li4KKworICAgIHN0YXRpYyBTaGFyZWRUaW1lckhhaWt1KiBzaGFyZWRUaW1l
ciA9IDA7CisKKyAgICBpZiAoIXNoYXJlZFRpbWVyKSB7CisgICAgICAgIEJBdXRvbG9jayBsb2Nr
KGxvb3Blcik7CisgICAgICAgIHNoYXJlZFRpbWVyID0gbmV3IFNoYXJlZFRpbWVySGFpa3UoKTsK
KyAgICAgICAgbG9vcGVyLT5BZGRDb21tb25GaWx0ZXIoc2hhcmVkVGltZXIpOworICAgIH0KKwor
ICAgIHJldHVybiBzaGFyZWRUaW1lcjsKK30KKworLy8gV2ViQ29yZSBmdW5jdGlvbnMKK3ZvaWQg
c2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgpKQoreworICAgIFNoYXJlZFRp
bWVySGFpa3UqIHRpbWVyID0gZ2V0U2hhcmVkVGltZXJIYWlrdSgpOworICAgIEJBdXRvbG9jayBs
b2NrKHRpbWVyLT5Mb29wZXIoKSk7CisgICAgdGltZXItPnNldEZpcmVGdW5jdGlvbihmKTsKK30K
Kwordm9pZCBzZXRTaGFyZWRUaW1lckZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkKK3sKKyAgICBT
aGFyZWRUaW1lckhhaWt1KiB0aW1lciA9IGdldFNoYXJlZFRpbWVySGFpa3UoKTsKKyAgICBCQXV0
b2xvY2sgbG9jayh0aW1lci0+TG9vcGVyKCkpOworICAgIHRpbWVyLT5zZXRTaG91bGRSdW4odHJ1
ZSk7CisgICAgdGltZXItPnNldEZpcmVUaW1lKGZpcmVUaW1lKTsKK30KKwordm9pZCBzdG9wU2hh
cmVkVGltZXIoKQoreworICAgIFNoYXJlZFRpbWVySGFpa3UqIHRpbWVyID0gZ2V0U2hhcmVkVGlt
ZXJIYWlrdSgpOworICAgIEJBdXRvbG9jayBsb2NrKHRpbWVyLT5Mb29wZXIoKSk7CisgICAgdGlt
ZXItPnNldFNob3VsZFJ1bihmYWxzZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NoYXJlZFRpbWVySGFpa3UuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wYzM2M2ZkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwuY29t
PgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU2hhcmVkVGlt
ZXJIYWlrdV9oCisjZGVmaW5lIFNoYXJlZFRpbWVySGFpa3VfaAorCisjaW5jbHVkZSA8TWVzc2Fn
ZUZpbHRlci5oPgorI2luY2x1ZGUgPE9TLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBj
bGFzcyBTaGFyZWRUaW1lckhhaWt1IDogcHVibGljIEJNZXNzYWdlRmlsdGVyIHsKKyAgICAgICAg
cHVibGljOgorICAgICAgICAgICAgU2hhcmVkVGltZXJIYWlrdSgpOworICAgICAgICAgICAgflNo
YXJlZFRpbWVySGFpa3UoKTsKKworICAgICAgICAgICAgdm9pZCBzZXRGaXJlVGltZShkb3VibGUg
ZmlyZVRpbWUpOworICAgICAgICAgICAgdm9pZCBzZXRGaXJlRnVuY3Rpb24odm9pZCAoKmYpKCkp
OworICAgICAgICAgICAgdm9pZCBzZXRTaG91bGRSdW4oYm9vbCBzaG91bGRSdW4pOworCisgICAg
ICAgICAgICB2aXJ0dWFsIGZpbHRlcl9yZXN1bHQgRmlsdGVyKEJNZXNzYWdlKiBtZXNzYWdlLCBC
SGFuZGxlcioqIF90YXJnZXQpOworCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBkb3Vi
bGUgbV9maXJlVGltZTsKKyAgICAgICAgICAgIHZvaWQgKCptX3RpbWVyRnVuY3Rpb24pKCk7Cisg
ICAgICAgICAgICBib29sIG1fc2hvdWxkUnVuOworICAgIH07CisKKyAgICBTaGFyZWRUaW1lckhh
aWt1KiBnZXRTaGFyZWRUaW1lckhhaWt1KCk7Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBTaGFyZWRUaW1lckhhaWt1X2gKKwotLSAKMS42LjMuMgoK
</data>
<flag name="review"
          id="18590"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34663</attachid>
            <date>2009-08-12 08:44:25 -0700</date>
            <delta_ts>2009-08-13 01:12:40 -0700</delta_ts>
            <desc>Patch to add the SharedTimer file for Haiku.</desc>
            <filename>Adding-the-SharedTimer-file-for-WebCore.patch</filename>
            <type>text/plain</type>
            <size>5067</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">RnJvbSBhMzI1NjljYmRlMDA2Y2JmM2M0NTUxNGFmZDQ5MzcwYzQxMDk2OWNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+
CkRhdGU6IFdlZCwgMTIgQXVnIDIwMDkgMTc6NDA6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBB
ZGRpbmcgdGhlIFNoYXJlZFRpbWVyIGZpbGUgZm9yIFdlYkNvcmUuCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysKIFdlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvU2hhcmVkVGltZXJIYWlrdS5jcHAgfCAgMTI3ICsrKysrKysrKysrKysrKysr
KysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NoYXJlZFRp
bWVySGFpa3UuY3BwCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0YjRkNGYwLi44YzAwZTM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA4LTEy
ICBNYXhpbWUgU2ltb24gIDxzaW1vbi5tYXhpbWVAZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtIYWlrdV0gQWRkaW5nIHRoZSBTaGFy
ZWRUaW1lciBmaWxlIGZvciBXZWJDb3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjgxMjYKKworICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1NoYXJl
ZFRpbWVySGFpa3UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFRpbWVySGFp
a3U6OlNoYXJlZFRpbWVySGFpa3UpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXJIYWlr
dTo6flNoYXJlZFRpbWVySGFpa3UpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXJIYWlr
dTo6aW5zdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXJIYWlrdTo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXJIYWlrdTo6c3RvcCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRUaW1lckhhaWt1OjpGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFNoYXJlZFRp
bWVyRmlyZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6c3RvcFNoYXJlZFRpbWVyKToKKwogMjAw
OS0wOC0xMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgSmFuIEFsb256by4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2hh
cmVkVGltZXJIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NoYXJlZFRpbWVySGFp
a3UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NGVhMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NoYXJlZFRpbWVySGFpa3UuY3Bw
CkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IE1heGltZSBTaW1v
biA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNoYXJlZFRpbWVyLmgiCisKKyNpbmNsdWRlIDxNZXNzYWdlRmlsdGVyLmg+Cisj
aW5jbHVkZSA8TWVzc2FnZVJ1bm5lci5oPgorI2luY2x1ZGUgPExvb3Blci5oPgorI2luY2x1ZGUg
PHN1cHBvcnQvTG9ja2VyLmg+CisjaW5jbHVkZSA8c3VwcG9ydC9BdXRvbG9jay5oPgorI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCisjZGVmaW5lIEZJUkVfTUVTU0FHRSAnZmlyZScKKwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYXJlZFRpbWVySGFpa3U6IHB1YmxpYyBC
TWVzc2FnZUZpbHRlciB7CisgICAgZnJpZW5kIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0
aW9uKHZvaWQgKCpmKSgpKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU2hhcmVkVGltZXJIYWlrdSog
aW5zdGFuY2UoKTsKKworICAgIHZvaWQgc3RhcnQoZG91YmxlKTsKKyAgICB2b2lkIHN0b3AoKTsK
KworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgZmlsdGVyX3Jlc3VsdCBGaWx0ZXIoQk1lc3NhZ2Uq
LCBCSGFuZGxlcioqKTsKKworcHJpdmF0ZToKKyAgICBTaGFyZWRUaW1lckhhaWt1KCk7CisgICAg
flNoYXJlZFRpbWVySGFpa3UoKTsKKworICAgIHZvaWQgKCptX3RpbWVyRnVuY3Rpb24pKCk7Cisg
ICAgYm9vbCBtX3Nob3VsZFJ1bjsKK307CisKK1NoYXJlZFRpbWVySGFpa3U6OlNoYXJlZFRpbWVy
SGFpa3UoKQorICAgIDogQk1lc3NhZ2VGaWx0ZXIoRklSRV9NRVNTQUdFKQorICAgICwgbV90aW1l
ckZ1bmN0aW9uKDApCisgICAgLCBtX3Nob3VsZFJ1bihmYWxzZSkKK3sKK30KKworU2hhcmVkVGlt
ZXJIYWlrdTo6flNoYXJlZFRpbWVySGFpa3UoKQoreworfQorCitTaGFyZWRUaW1lckhhaWt1KiBT
aGFyZWRUaW1lckhhaWt1OjppbnN0YW5jZSgpCit7CisgICAgQkxvb3BlciogbG9vcGVyID0gQkxv
b3Blcjo6TG9vcGVyRm9yVGhyZWFkKGZpbmRfdGhyZWFkKDApKTsKKyAgICBzdGF0aWMgU2hhcmVk
VGltZXJIYWlrdSogdGltZXI7CisKKyAgICBpZiAoIXRpbWVyKSB7CisgICAgICAgIEJBdXRvbG9j
ayBsb2NrKGxvb3Blcik7CisgICAgICAgIHRpbWVyID0gbmV3IFNoYXJlZFRpbWVySGFpa3UoKTsK
KyAgICAgICAgbG9vcGVyLT5BZGRDb21tb25GaWx0ZXIodGltZXIpOworICAgIH0KKworICAgIHJl
dHVybiB0aW1lcjsKK30KKwordm9pZCBTaGFyZWRUaW1lckhhaWt1OjpzdGFydChkb3VibGUgZmly
ZVRpbWUpCit7CisgICAgbV9zaG91bGRSdW4gPSB0cnVlOworICAgIGJpZ3RpbWVfdCBpbnRlcnZh
bCA9IGZpcmVUaW1lIC0gY3VycmVudFRpbWUoKTsKKworICAgIGlmIChpbnRlcnZhbCA8IDApCisg
ICAgICAgIGludGVydmFsID0gMDsKKyAgICBlbHNlCisgICAgICAgIGludGVydmFsICo9IDEwMDA7
CisKKyAgICBCTWVzc2FnZVJ1bm5lcjo6U3RhcnRTZW5kaW5nKExvb3BlcigpLCBuZXcgQk1lc3Nh
Z2UoRklSRV9NRVNTQUdFKSwgaW50ZXJ2YWwsIDEpOworfQorCit2b2lkIFNoYXJlZFRpbWVySGFp
a3U6OnN0b3AoKQoreworICAgIG1fc2hvdWxkUnVuID0gZmFsc2U7Cit9CisKK2ZpbHRlcl9yZXN1
bHQgU2hhcmVkVGltZXJIYWlrdTo6RmlsdGVyKEJNZXNzYWdlKiwgQkhhbmRsZXIqKikKK3sKKyAg
ICBpZiAobV9zaG91bGRSdW4gJiYgbV90aW1lckZ1bmN0aW9uKQorICAgICAgICBtX3RpbWVyRnVu
Y3Rpb24oKTsKKworICAgIHJldHVybiBCX1NLSVBfTUVTU0FHRTsKK30KKworLy8gV2ViQ29yZSBm
dW5jdGlvbnMKK3ZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgpKQor
eworICAgIFNoYXJlZFRpbWVySGFpa3U6Omluc3RhbmNlKCktPm1fdGltZXJGdW5jdGlvbiA9IGY7
Cit9CisKK3ZvaWQgc2V0U2hhcmVkVGltZXJGaXJlVGltZShkb3VibGUgZmlyZVRpbWUpCit7Cisg
ICAgU2hhcmVkVGltZXJIYWlrdTo6aW5zdGFuY2UoKS0+c3RhcnQoZmlyZVRpbWUpOworfQorCit2
b2lkIHN0b3BTaGFyZWRUaW1lcigpCit7CisgICAgU2hhcmVkVGltZXJIYWlrdTo6aW5zdGFuY2Uo
KS0+c3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0tIAoxLjYuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34719</attachid>
            <date>2009-08-13 01:12:47 -0700</date>
            <delta_ts>2009-08-15 00:46:31 -0700</delta_ts>
            <desc>Adding the SharedTimer file for WebCore.</desc>
            <filename>bug-28126-20090813101245.patch</filename>
            <type>text/plain</type>
            <size>4608</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGI0ZDRmMC4uMDliOGMyMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wOC0xMyAgTWF4aW1lIFNpbW9u
ICA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbSGFpa3VdIEFkZGluZyB0aGUgU2hhcmVkVGltZXIgZmlsZSBm
b3IgV2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI4MTI2CisKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVk
VGltZXJIYWlrdTo6U2hhcmVkVGltZXJIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRU
aW1lckhhaWt1Ojp+U2hhcmVkVGltZXJIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRU
aW1lckhhaWt1OjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhhaWt1
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhhaWt1OjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZFRpbWVySGFpa3U6OkZpbHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0
U2hhcmVkVGltZXJGaXJlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9wU2hhcmVkVGltZXIp
OgorCiAyMDA5LTA4LTEyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9o
YWlrdS9TaGFyZWRUaW1lckhhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2hhcmVk
VGltZXJIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI5YTE5
ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2hhcmVkVGltZXJI
YWlrdS5jcHAKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgTWF4
aW1lIFNpbW9uIDxzaW1vbi5tYXhpbWVAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKKworI2luY2x1ZGUgPE1lc3NhZ2VGaWx0
ZXIuaD4KKyNpbmNsdWRlIDxNZXNzYWdlUnVubmVyLmg+CisjaW5jbHVkZSA8TG9vcGVyLmg+Cisj
aW5jbHVkZSA8c3VwcG9ydC9Mb2NrZXIuaD4KKyNpbmNsdWRlIDxzdXBwb3J0L0F1dG9sb2NrLmg+
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKKyNkZWZpbmUgRklSRV9NRVNTQUdFICdm
aXJlJworCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2hhcmVkVGltZXJIYWlrdTog
cHVibGljIEJNZXNzYWdlRmlsdGVyIHsKKyAgICBmcmllbmQgdm9pZCBzZXRTaGFyZWRUaW1lckZp
cmVkRnVuY3Rpb24odm9pZCAoKmYpKCkpOworcHVibGljOgorICAgIHN0YXRpYyBTaGFyZWRUaW1l
ckhhaWt1KiBpbnN0YW5jZSgpOworCisgICAgdm9pZCBzdGFydChkb3VibGUpOworICAgIHZvaWQg
c3RvcCgpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBmaWx0ZXJfcmVzdWx0IEZpbHRlcihC
TWVzc2FnZSosIEJIYW5kbGVyKiopOworCitwcml2YXRlOgorICAgIFNoYXJlZFRpbWVySGFpa3Uo
KTsKKyAgICB+U2hhcmVkVGltZXJIYWlrdSgpOworCisgICAgdm9pZCAoKm1fdGltZXJGdW5jdGlv
bikoKTsKKyAgICBib29sIG1fc2hvdWxkUnVuOworfTsKKworU2hhcmVkVGltZXJIYWlrdTo6U2hh
cmVkVGltZXJIYWlrdSgpCisgICAgOiBCTWVzc2FnZUZpbHRlcihGSVJFX01FU1NBR0UpCisgICAg
LCBtX3RpbWVyRnVuY3Rpb24oMCkKKyAgICAsIG1fc2hvdWxkUnVuKGZhbHNlKQoreworfQorCitT
aGFyZWRUaW1lckhhaWt1Ojp+U2hhcmVkVGltZXJIYWlrdSgpCit7Cit9CisKK1NoYXJlZFRpbWVy
SGFpa3UqIFNoYXJlZFRpbWVySGFpa3U6Omluc3RhbmNlKCkKK3sKKyAgICBCTG9vcGVyKiBsb29w
ZXIgPSBCTG9vcGVyOjpMb29wZXJGb3JUaHJlYWQoZmluZF90aHJlYWQoMCkpOworICAgIHN0YXRp
YyBTaGFyZWRUaW1lckhhaWt1KiB0aW1lcjsKKworICAgIGlmICghdGltZXIpIHsKKyAgICAgICAg
QkF1dG9sb2NrIGxvY2sobG9vcGVyKTsKKyAgICAgICAgdGltZXIgPSBuZXcgU2hhcmVkVGltZXJI
YWlrdSgpOworICAgICAgICBsb29wZXItPkFkZENvbW1vbkZpbHRlcih0aW1lcik7CisgICAgfQor
CisgICAgcmV0dXJuIHRpbWVyOworfQorCit2b2lkIFNoYXJlZFRpbWVySGFpa3U6OnN0YXJ0KGRv
dWJsZSBmaXJlVGltZSkKK3sKKyAgICBtX3Nob3VsZFJ1biA9IHRydWU7CisKKyAgICBiaWd0aW1l
X3QgaW50ZXJ2YWwgPSBmaXJlVGltZSAtIGN1cnJlbnRUaW1lKCk7CisgICAgYmlndGltZV90IG1p
bGxpU2Vjb25kSW50ZXJ2YWwgPSBpbnRlcnZhbCA8IDAgPyAwIDogaW50ZXJ2YWwgKiAxMDAwOwor
CisgICAgQk1lc3NhZ2VSdW5uZXI6OlN0YXJ0U2VuZGluZyhMb29wZXIoKSwgbmV3IEJNZXNzYWdl
KEZJUkVfTUVTU0FHRSksIG1pbGxpU2Vjb25kSW50ZXJ2YWwsIDEpOworfQorCit2b2lkIFNoYXJl
ZFRpbWVySGFpa3U6OnN0b3AoKQoreworICAgIG1fc2hvdWxkUnVuID0gZmFsc2U7Cit9CisKK2Zp
bHRlcl9yZXN1bHQgU2hhcmVkVGltZXJIYWlrdTo6RmlsdGVyKEJNZXNzYWdlKiwgQkhhbmRsZXIq
KikKK3sKKyAgICBpZiAobV9zaG91bGRSdW4gJiYgbV90aW1lckZ1bmN0aW9uKQorICAgICAgICBt
X3RpbWVyRnVuY3Rpb24oKTsKKworICAgIHJldHVybiBCX1NLSVBfTUVTU0FHRTsKK30KKworLy8g
V2ViQ29yZSBmdW5jdGlvbnMKK3ZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQg
KCpmKSgpKQoreworICAgIFNoYXJlZFRpbWVySGFpa3U6Omluc3RhbmNlKCktPm1fdGltZXJGdW5j
dGlvbiA9IGY7Cit9CisKK3ZvaWQgc2V0U2hhcmVkVGltZXJGaXJlVGltZShkb3VibGUgZmlyZVRp
bWUpCit7CisgICAgU2hhcmVkVGltZXJIYWlrdTo6aW5zdGFuY2UoKS0+c3RhcnQoZmlyZVRpbWUp
OworfQorCit2b2lkIHN0b3BTaGFyZWRUaW1lcigpCit7CisgICAgU2hhcmVkVGltZXJIYWlrdTo6
aW5zdGFuY2UoKS0+c3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34891</attachid>
            <date>2009-08-15 00:46:54 -0700</date>
            <delta_ts>2009-08-18 20:32:58 -0700</delta_ts>
            <desc>Adding the SharedTimer file for WebCore.</desc>
            <filename>bug-28126-20090815094647.patch</filename>
            <type>text/plain</type>
            <size>4652</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWJkMzRlYi4uNmM4ZmZhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wOC0xNSAgTWF4aW1lIFNpbW9u
ICA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbSGFpa3VdIEFkZGluZyB0aGUgU2hhcmVkVGltZXIgZmlsZSBm
b3IgV2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI4MTI2CisKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9TaGFyZWRUaW1lckhhaWt1LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVk
VGltZXJIYWlrdTo6U2hhcmVkVGltZXJIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRU
aW1lckhhaWt1Ojp+U2hhcmVkVGltZXJIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRU
aW1lckhhaWt1OjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhhaWt1
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lckhhaWt1OjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZFRpbWVySGFpa3U6OkZpbHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0
U2hhcmVkVGltZXJGaXJlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9wU2hhcmVkVGltZXIp
OgorCiAyMDA5LTA4LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2hhaWt1L1NoYXJlZFRpbWVySGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9o
YWlrdS9TaGFyZWRUaW1lckhhaWt1LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42MjY1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9T
aGFyZWRUaW1lckhhaWt1LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBNYXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgorCisjaW5jbHVkZSA8
TWVzc2FnZUZpbHRlci5oPgorI2luY2x1ZGUgPE1lc3NhZ2VSdW5uZXIuaD4KKyNpbmNsdWRlIDxM
b29wZXIuaD4KKyNpbmNsdWRlIDxzdXBwb3J0L0xvY2tlci5oPgorI2luY2x1ZGUgPHN1cHBvcnQv
QXV0b2xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKworI2RlZmluZSBGSVJF
X01FU1NBR0UgJ2ZpcmUnCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFyZWRU
aW1lckhhaWt1OiBwdWJsaWMgQk1lc3NhZ2VGaWx0ZXIgeworICAgIGZyaWVuZCB2b2lkIHNldFNo
YXJlZFRpbWVyRmlyZWRGdW5jdGlvbih2b2lkICgqZikoKSk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFNoYXJlZFRpbWVySGFpa3UqIGluc3RhbmNlKCk7CisKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSk7
CisgICAgdm9pZCBzdG9wKCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIGZpbHRlcl9yZXN1
bHQgRmlsdGVyKEJNZXNzYWdlKiwgQkhhbmRsZXIqKik7CisKK3ByaXZhdGU6CisgICAgU2hhcmVk
VGltZXJIYWlrdSgpOworICAgIH5TaGFyZWRUaW1lckhhaWt1KCk7CisKKyAgICB2b2lkICgqbV90
aW1lckZ1bmN0aW9uKSgpOworICAgIGJvb2wgbV9zaG91bGRSdW47Cit9OworCitTaGFyZWRUaW1l
ckhhaWt1OjpTaGFyZWRUaW1lckhhaWt1KCkKKyAgICA6IEJNZXNzYWdlRmlsdGVyKEZJUkVfTUVT
U0FHRSkKKyAgICAsIG1fdGltZXJGdW5jdGlvbigwKQorICAgICwgbV9zaG91bGRSdW4oZmFsc2Up
Cit7Cit9CisKK1NoYXJlZFRpbWVySGFpa3U6On5TaGFyZWRUaW1lckhhaWt1KCkKK3sKK30KKwor
U2hhcmVkVGltZXJIYWlrdSogU2hhcmVkVGltZXJIYWlrdTo6aW5zdGFuY2UoKQoreworICAgIEJM
b29wZXIqIGxvb3BlciA9IEJMb29wZXI6Okxvb3BlckZvclRocmVhZChmaW5kX3RocmVhZCgwKSk7
CisgICAgc3RhdGljIFNoYXJlZFRpbWVySGFpa3UqIHRpbWVyOworCisgICAgaWYgKCF0aW1lcikg
eworICAgICAgICBCQXV0b2xvY2sgbG9jayhsb29wZXIpOworICAgICAgICB0aW1lciA9IG5ldyBT
aGFyZWRUaW1lckhhaWt1KCk7CisgICAgICAgIGxvb3Blci0+QWRkQ29tbW9uRmlsdGVyKHRpbWVy
KTsKKyAgICB9CisKKyAgICByZXR1cm4gdGltZXI7Cit9CisKK3ZvaWQgU2hhcmVkVGltZXJIYWlr
dTo6c3RhcnQoZG91YmxlIGZpcmVUaW1lKQoreworICAgIG1fc2hvdWxkUnVuID0gdHJ1ZTsKKwor
ICAgIGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyA9IGZpcmVUaW1lIC0gY3VycmVudFRpbWUoKTsK
KyAgICBiaWd0aW1lX3QgaW50ZXJ2YWxJbk1pY3JvU2Vjb25kcyA9IGludGVydmFsSW5TZWNvbmRz
IDwgMCA/IDAgOiBpbnRlcnZhbEluU2Vjb25kcyAqIDEwMDAwMDA7CisKKyAgICBCTWVzc2FnZVJ1
bm5lcjo6U3RhcnRTZW5kaW5nKExvb3BlcigpLCBuZXcgQk1lc3NhZ2UoRklSRV9NRVNTQUdFKSwg
aW50ZXJ2YWxJbk1pY3JvU2Vjb25kcywgMSk7Cit9CisKK3ZvaWQgU2hhcmVkVGltZXJIYWlrdTo6
c3RvcCgpCit7CisgICAgbV9zaG91bGRSdW4gPSBmYWxzZTsKK30KKworZmlsdGVyX3Jlc3VsdCBT
aGFyZWRUaW1lckhhaWt1OjpGaWx0ZXIoQk1lc3NhZ2UqLCBCSGFuZGxlcioqKQoreworICAgIGlm
IChtX3Nob3VsZFJ1biAmJiBtX3RpbWVyRnVuY3Rpb24pCisgICAgICAgIG1fdGltZXJGdW5jdGlv
bigpOworCisgICAgcmV0dXJuIEJfU0tJUF9NRVNTQUdFOworfQorCisvLyBXZWJDb3JlIGZ1bmN0
aW9ucwordm9pZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24odm9pZCAoKmYpKCkpCit7Cisg
ICAgU2hhcmVkVGltZXJIYWlrdTo6aW5zdGFuY2UoKS0+bV90aW1lckZ1bmN0aW9uID0gZjsKK30K
Kwordm9pZCBzZXRTaGFyZWRUaW1lckZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkKK3sKKyAgICBT
aGFyZWRUaW1lckhhaWt1OjppbnN0YW5jZSgpLT5zdGFydChmaXJlVGltZSk7Cit9CisKK3ZvaWQg
c3RvcFNoYXJlZFRpbWVyKCkKK3sKKyAgICBTaGFyZWRUaW1lckhhaWt1OjppbnN0YW5jZSgpLT5z
dG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU=
</data>

          </attachment>
      

    </bug>

</bugzilla>