<?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>17133</bug_id>
          
          <creation_ts>2008-02-01 08:01:25 -0800</creation_ts>
          <short_desc>Should support pausing JavaScript execution without hanging the process</short_desc>
          <delta_ts>2013-10-24 10:30:31 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>17134</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>p.jacquemart</cc>
    
    <cc>xfdbse</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69037</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-01 08:01:25 -0800</bug_when>
    <thetext>Currently the only way to pause JavaScript execution is to block the entire process (which is the approach taken by Drosera). It would be much nicer if we could pause JavaScript execution without blocking the process. This would, for example, allow us to build an in-process JavaScript debugger, a la Firebug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69038</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-01 08:01:51 -0800</bug_when>
    <thetext>See bug 8285 for a previous attempt at reworking the JS interpreter in a way that would have allowed pausing execution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69042</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-01 08:09:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/5719551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72991</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 08:32:09 -0800</bug_when>
    <thetext>It seems that Firebug, while paused at a breakpoint, basically stops any new JavaScript execution from being initiated. In particular:

1. JavaScript event handlers never run
2. Code scheduled to be executed via setTimeout/setInterval executes immediately when JS is resumed if the timer went off while paused</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72993</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 08:33:33 -0800</bug_when>
    <thetext>I think we can follow Firebug/Gecko&apos;s model here in WebKit.

(In reply to comment #3)
&gt; 2. Code scheduled to be executed via setTimeout/setInterval executes
&gt; immediately when JS is resumed if the timer went off while paused

This doesn&apos;t seem like a particularly good behavior. I think it would be better to pause the timers themselves while JS is paused, and resume the timers once you resume.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72994</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 08:34:00 -0800</bug_when>
    <thetext>Another thing we&apos;ll have to pause are callbacks from the SQL storage API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72995</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 08:37:32 -0800</bug_when>
    <thetext>We&apos;ll also want to block plugins from obtaining access to the DOM, and we&apos;ll probably want to pause all plugin requests, since they can request javascript: URIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72996</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 08:38:42 -0800</bug_when>
    <thetext>To actually pause at a breakpoint, I think we&apos;ll just need to spin up a nested event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72998</commentid>
    <comment_count>8</comment_count>
      <attachid>19588</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 09:23:14 -0800</bug_when>
    <thetext>Created attachment 19588
[WIP] Make it possible to pause JS timers and block JS event handlers per-Frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72999</commentid>
    <comment_count>9</comment_count>
      <attachid>19589</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 09:23:40 -0800</bug_when>
    <thetext>Created attachment 19589
[WIP] Make it possible to pause/resume the DatabaseThread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73000</commentid>
    <comment_count>10</comment_count>
      <attachid>19590</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 09:24:05 -0800</bug_when>
    <thetext>Created attachment 19590
[WIP] Make it possible to pause/block JS from plugins (Windows only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73001</commentid>
    <comment_count>11</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-03-07 09:34:11 -0800</bug_when>
    <thetext>The JS plugin approach seems good but the patch is insufficient. Since a plug-in can hold on to any NPObject, any NPRuntime call that can result in JS being executed needcs to be handled in the same way as NPN_GetValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73003</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 09:51:01 -0800</bug_when>
    <thetext>Anders thinks that maybe the current patch, while theoretically insufficient, might be good enough, practically speaking:

&lt;andersca&gt; aroben: I think that all the plug-ins I&apos;ve encountered always get the window NPObject before calling JS
&lt;andersca&gt; aroben: so for now you might be able to get away with just preventing getvalue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73004</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 09:52:13 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; The JS plugin approach seems good but the patch is insufficient. Since a
&gt; plug-in can hold on to any NPObject, any NPRuntime call that can result in JS
&gt; being executed needcs to be handled in the same way as NPN_GetValue.

If we decide to address this issue we will have to patch the methods in WebCore/bridge/NP_jsobject.cpp.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73005</commentid>
    <comment_count>14</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-03-07 10:54:26 -0800</bug_when>
    <thetext>On Mac we will need to prevent WebScriptObject from making any calls. The evaluate methods and setValue:forKey:. I can look at doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73013</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-07 12:00:05 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; On Mac we will need to prevent WebScriptObject from making any calls. The
&gt; evaluate methods and setValue:forKey:. I can look at doing this.

Is this to prevent WebKit clients from calling into JavaScript? Or is it about WebKit plugins? I&apos;ve made no attempts to block WebKit clients so far.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73243</commentid>
    <comment_count>16</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-03-10 14:06:07 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; On Mac we will need to prevent WebScriptObject from making any calls. The
&gt; &gt; evaluate methods and setValue:forKey:. I can look at doing this.
&gt; 
&gt; Is this to prevent WebKit clients from calling into JavaScript? Or is it about
&gt; WebKit plugins? I&apos;ve made no attempts to block WebKit clients so far.

Really both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73551</commentid>
    <comment_count>17</comment_count>
      <attachid>19589</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-12 23:34:09 -0700</bug_when>
    <thetext>Comment on attachment 19589
[WIP] Make it possible to pause/resume the DatabaseThread

After discussing with Alexey, I&apos;ve realized that this patch is not sufficient. One problem with it is that it does not stop already-queued callbacks from executing.

To fix this completely Alexey and I think we&apos;ll need a way to pause all queued actions passed to callOnMainThread. This will require patching each platform&apos;s implementation of this function separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73566</commentid>
    <comment_count>18</comment_count>
      <attachid>19725</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 08:33:24 -0700</bug_when>
    <thetext>Created attachment 19725
[WIP] Make it possible to pause/resume callOnMainThread callbacks (Windows only)

This patch replaces the DatabaseThread patch. It allows you to pause/resume callbacks scheduled through callOnMainThread, which is what the DatabaseThread uses to schedule transaction callbacks. This implementation is Windows-only, just to have a reference point for talking about this concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73568</commentid>
    <comment_count>19</comment_count>
      <attachid>19726</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 08:40:57 -0700</bug_when>
    <thetext>Created attachment 19726
[WIP (revised)] Pause/resume of callOnMainThread (Windows only)

This revised patch removes the guard of callbacksPaused and adds a comment that setMainThreadCallbacksPaused must be called from the main thread. It also fixes a reversed assignment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73572</commentid>
    <comment_count>20</comment_count>
      <attachid>19728</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 09:07:58 -0700</bug_when>
    <thetext>Created attachment 19728
[WIP] Make more MainThread code cross-platform

This patch makes more of the MainThread code from the Windows implementation cross-platform so that it may be shared with other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73573</commentid>
    <comment_count>21</comment_count>
      <attachid>19729</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 09:09:26 -0700</bug_when>
    <thetext>Created attachment 19729
[WIP (revised 2)] Pause/resume of callOnMainThread

New patch that relies on attachment 19728</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73574</commentid>
    <comment_count>22</comment_count>
      <attachid>19730</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 09:15:25 -0700</bug_when>
    <thetext>Created attachment 19730
[WIP (revised)] Make more MainThread code shareable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73580</commentid>
    <comment_count>23</comment_count>
      <attachid>19731</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 09:49:39 -0700</bug_when>
    <thetext>Created attachment 19731
[WIP] Share most MainThread code across all platforms

This patch is missing a change to WebCore.xcodeproj to add MainThread.cpp to the project, but other than that (and need a ChangeLog) it should be ready to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73612</commentid>
    <comment_count>24</comment_count>
      <attachid>19729</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 11:49:46 -0700</bug_when>
    <thetext>Comment on attachment 19729
[WIP (revised 2)] Pause/resume of callOnMainThread

This patch now works cross-platform (note that it depends on attachment 19731).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73616</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 12:11:15 -0700</bug_when>
    <thetext>Here are the ways I currently know that JavaScript execution can be initiated:

1. JavaScript event handlers
2. Callbacks from window.setTimeout/window.setInterval
3. Callbacks from the client-side database storage API
4. JavaScript access from plugins (both NPAPI and WebKit plugins)
5. Parsing of a &lt;script&gt; tag in a document
6. Loading of a script resource completing
7. Loading of javascript: URIs
8. Calls from WebKit clients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73619</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 12:19:10 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Here are the ways I currently know that JavaScript execution can be initiated:
&gt; 
&gt; 1. JavaScript event handlers
&gt; 2. Callbacks from window.setTimeout/window.setInterval

These are handled by attachment 19588 (except for the FIXME about timers scheduled while paused).

&gt; 3. Callbacks from the client-side database storage API

This is handled by attachment 19729.

&gt; 4. JavaScript access from plugins (both NPAPI and WebKit plugins)

This is handled for Windows by attachment 19590. Making this work on Mac will involve similar changes to WebBaseNetscapePluginView and blocking calls to WebScriptObject.

&gt; 5. Parsing of a &lt;script&gt; tag in a document
&gt; 6. Loading of a script resource completing

I believe these can be handled by calling Page::setDefersLoading(true).

&gt; 7. Loading of javascript: URIs

I don&apos;t yet have a solution for this.

&gt; 8. Calls from WebKit clients

I don&apos;t yet plan to try to block this, since for the moment I&apos;m only concerned with getting this working for in-process JavaScript debugging in the Inspector (bug 17134), and I think we can get by without this for those purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73636</commentid>
    <comment_count>27</comment_count>
      <attachid>19744</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 14:56:14 -0700</bug_when>
    <thetext>Created attachment 19744
Make most of callOnMainThread be cross-platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73668</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 21:07:31 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; Here are the ways I currently know that JavaScript execution can be initiated:
&gt; &gt; 7. Loading of javascript: URIs
&gt; 
&gt; I don&apos;t yet have a solution for this.

I think I now understand how to deal with this.

Here are the ways a javascript: URI may be evaluated:

A. Parsing of a &lt;frame&gt;/&lt;iframe&gt; tag that has a javascript: URI as the value of its src attribute

   This can be prevented by Page::setDefersLoading(true), just as with parsing of &lt;script&gt; elements.

B. Programmatically changing window.location or the src attribute of a &lt;frame&gt;/&lt;iframe&gt; to a javascript: URI

   This will be prevented simply because we&apos;re going to be pausing JavaScript.

C. User activating an &lt;a&gt; that has a javascript: URI as the value of its href attribute
D. User submitting a form that has a javascript: URI as the value of its action attribute

   These we will need to block. Programmatic activation/submission (e.g., anchor.click()/form.submit()) should be allowed.

E. &quot;Navigation&quot; of the main frame to a javascript: URI by the WebKit client

   This falls under the general category of calls from WebKit clients that execute JavaScript (this is item (8) from comment 25). I&apos;m not concerned with this right now.

So, all we need to do is make sure that the link&apos;s/form&apos;s javascript: URI is not evaluated if the user clicks a link/submits a form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73669</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-13 21:09:18 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; B. Programmatically changing window.location or the src attribute of a
&gt; &lt;frame&gt;/&lt;iframe&gt; to a javascript: URI
&gt; 
&gt;    This will be prevented simply because we&apos;re going to be pausing JavaScript.

I should be slightly clearer here. If the programmatic change is in the code that we are stepping through in the debugger, we will allow this to happen. If the programmatic change is in other code, it won&apos;t be executing because JavaScript will be paused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73740</commentid>
    <comment_count>30</comment_count>
      <attachid>19744</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-03-14 09:37:10 -0700</bug_when>
    <thetext>Comment on attachment 19744
Make most of callOnMainThread be cross-platform

r=me

+				RelativePath=&quot;..\platform\MainThreadInternal.h&quot;

I&apos;m not sure if I love the file name &quot;MainThreadInternal&quot; - Internal has all sorts of connotations, which do not apply here :)

I think I&apos;d just keep these functions in the same file, although either way is OK with me.

-    if (processingCustomThreadingMessage)
-        LOG(Threading, &quot;callOnMainThread() called recursively.  Beware of nested PostMessage()s&quot;);
+    if (dispatchingCallbacks)
+        LOG(Threading, &quot;callOnMainThread() called recursively.&quot;);

I do not understand this check. What&apos;s the problem with a thread making a callback when the main thread is working through previous ones (possibly from other threads)? I suggest removing it, if a reason doesn&apos;t come up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73741</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 09:40:16 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 19744 [edit])
&gt; -    if (processingCustomThreadingMessage)
&gt; -        LOG(Threading, &quot;callOnMainThread() called recursively.  Beware of
&gt; nested PostMessage()s&quot;);
&gt; +    if (dispatchingCallbacks)
&gt; +        LOG(Threading, &quot;callOnMainThread() called recursively.&quot;);
&gt; 
&gt; I do not understand this check. What&apos;s the problem with a thread making a
&gt; callback when the main thread is working through previous ones (possibly from
&gt; other threads)? I suggest removing it, if a reason doesn&apos;t come up.

Hopefully Brady can shed some light here, since he wrote the code originally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73743</commentid>
    <comment_count>32</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2008-03-14 10:04:31 -0700</bug_when>
    <thetext>I&apos;m fairly certain I modeled the original code after a public domain &quot;Call a function on the main thread from any other thread in Windows&quot; tutorial.

It&apos;s been awhile - I remember the concern of an infinite recursion into PostMessage, but don&apos;t remember details beyond that.  

If someone more familiar with the Windows message loop decides the concern is unwarranted in this application, fine by me to remove it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73744</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 10:12:52 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; I&apos;m fairly certain I modeled the original code after a public domain &quot;Call a
&gt; function on the main thread from any other thread in Windows&quot; tutorial.
&gt; 
&gt; It&apos;s been awhile - I remember the concern of an infinite recursion into
&gt; PostMessage, but don&apos;t remember details beyond that.  
&gt; 
&gt; If someone more familiar with the Windows message loop decides the concern is
&gt; unwarranted in this application, fine by me to remove it!

I don&apos;t think there&apos;s a danger of recursion beneath PostMessage -- the whole point of PostMessage is that the message won&apos;t be dealt with until after we return to the message pump.

Thanks for the explanation!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73760</commentid>
    <comment_count>34</comment_count>
      <attachid>19768</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 12:28:24 -0700</bug_when>
    <thetext>Created attachment 19768
[1/2] Make PausedTimeouts be internal to JSDOMWindowBase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73761</commentid>
    <comment_count>35</comment_count>
      <attachid>19769</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 12:28:41 -0700</bug_when>
    <thetext>Created attachment 19769
[2/2] Remove PausedTimeouts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73762</commentid>
    <comment_count>36</comment_count>
      <attachid>19770</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 12:35:50 -0700</bug_when>
    <thetext>Created attachment 19770
[WIP] Add KJSProxy::[set]JavaScriptExecutionAllowed to pause timeouts and block JS event handlers

This depends on attachment 19769.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73764</commentid>
    <comment_count>37</comment_count>
      <attachid>19771</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 12:41:24 -0700</bug_when>
    <thetext>Created attachment 19771
[WIP] Pause JS timers, block javascript: URIs, block JS event handlers

This patch adds KJSProxy::[set]JavaScriptExecutionAllowed. Calling setJavaScriptExecutionAllowed(false) will pause JS timers, block javascript: URIs, and block JS event handlers. This patch depends on attachment 19769.

This takes care of items (1), (2), and (7) from comment 25.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73768</commentid>
    <comment_count>38</comment_count>
      <attachid>19744</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 12:53:45 -0700</bug_when>
    <thetext>Comment on attachment 19744
Make most of callOnMainThread be cross-platform

Committed in r31063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73771</commentid>
    <comment_count>39</comment_count>
      <attachid>19771</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-03-14 13:12:44 -0700</bug_when>
    <thetext>Comment on attachment 19771
[WIP] Pause JS timers, block javascript: URIs, block JS event handlers

I think setPaused / isPaused would be a better naming scheme than setJavaScriptExecutionAllowed  / javaScriptExecutionAllowed. It matches the style of setEnabled / isEnabled, it&apos;s more terse, and it&apos;s more specific about why JavaScript execution is not allowed, and what will happen to attempts to execute JavaScript.

+void KJSProxy::setJavaScriptExecutionAllowed(bool allowed)
+{
+    if (!m_globalObject)
+        return;
+

This code seems wrong. It means that a proxy that didn&apos;t have a global object wouldn&apos;t &quot;get the memo&quot; about JavaScript being paused, so it might start up JS execution at a later time.

r=me, with comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73778</commentid>
    <comment_count>40</comment_count>
      <attachid>19768</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-03-14 13:27:14 -0700</bug_when>
    <thetext>Comment on attachment 19768
[1/2] Make PausedTimeouts be internal to JSDOMWindowBase

You need to hand off the paused timeouts to the CachedPage, otherwise they can&apos;t resume when the CachedPage is displayed again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73779</commentid>
    <comment_count>41</comment_count>
      <attachid>19769</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-03-14 13:30:43 -0700</bug_when>
    <thetext>Comment on attachment 19769
[2/2] Remove PausedTimeouts

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73781</commentid>
    <comment_count>42</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-14 13:40:12 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; (From update of attachment 19768 [edit])
&gt; You need to hand off the paused timeouts to the CachedPage, otherwise they
&gt; can&apos;t resume when the CachedPage is displayed again.

A little clarification for those following along at home: the JSDOMWindowBase object is reused for each navigation, and the CachedPage&apos;s job is to save off information from JSDOMWindowBase (and other objects) that needs to be restored later.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73856</commentid>
    <comment_count>43</comment_count>
      <attachid>19771</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-15 20:54:57 -0700</bug_when>
    <thetext>Comment on attachment 19771
[WIP] Pause JS timers, block javascript: URIs, block JS event handlers

After some more thinking, I&apos;ve realized we don&apos;t need to worry about new timers being installed while JavaScript is paused. The timers can only be installed programmatically, which can&apos;t happen while JavaScript is paused.

So, the PausedTimeouts refactoring is not necessary, and I&apos;ll post a newer version of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73860</commentid>
    <comment_count>44</comment_count>
      <attachid>19788</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-15 21:07:09 -0700</bug_when>
    <thetext>Created attachment 19788
[WIP] Block javascript: URIs and JS event handlers while paused</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74580</commentid>
    <comment_count>45</comment_count>
      <attachid>19915</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-20 16:55:18 -0700</bug_when>
    <thetext>Created attachment 19915
Block JS event handlers/javascript: URIs per-Frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74581</commentid>
    <comment_count>46</comment_count>
      <attachid>19916</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-20 16:55:40 -0700</bug_when>
    <thetext>Created attachment 19916
Pause callOnMainThread callbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74582</commentid>
    <comment_count>47</comment_count>
      <attachid>19917</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-20 16:56:09 -0700</bug_when>
    <thetext>Created attachment 19917
Pause/block JS execution from plugins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74583</commentid>
    <comment_count>48</comment_count>
      <attachid>19915</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-20 17:15:04 -0700</bug_when>
    <thetext>Comment on attachment 19915
Block JS event handlers/javascript: URIs per-Frame

Committed in r31197</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74584</commentid>
    <comment_count>49</comment_count>
      <attachid>19916</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-20 17:15:44 -0700</bug_when>
    <thetext>Comment on attachment 19916
Pause callOnMainThread callbacks

Committed in r31198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74585</commentid>
    <comment_count>50</comment_count>
      <attachid>19917</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-20 17:16:02 -0700</bug_when>
    <thetext>Comment on attachment 19917
Pause/block JS execution from plugins

Committed in r31199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74632</commentid>
    <comment_count>51</comment_count>
      <attachid>19926</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-21 08:03:54 -0700</bug_when>
    <thetext>Created attachment 19926
Don&apos;t allow newly-scheduled plugin requests to be serviced while JS is paused</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74641</commentid>
    <comment_count>52</comment_count>
      <attachid>19926</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-21 09:29:06 -0700</bug_when>
    <thetext>Comment on attachment 19926
Don&apos;t allow newly-scheduled plugin requests to be serviced while JS is paused

Committed in r31210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943188</commentid>
    <comment_count>53</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-24 10:06:39 -0700</bug_when>
    <thetext>Is this still something we want (and haven&apos;t done yet)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943202</commentid>
    <comment_count>54</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2013-10-24 10:30:31 -0700</bug_when>
    <thetext>I&apos;m pretty sure this task was finished (or finished enough to let the Inspector&apos;s JS debugger work) when the last patch landed, and I just forgot to close the bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19588</attachid>
            <date>2008-03-07 09:23:14 -0800</date>
            <delta_ts>2008-03-14 12:35:50 -0700</delta_ts>
            <desc>[WIP] Make it possible to pause JS timers and block JS event handlers per-Frame</desc>
            <filename>0001-Make-it-possible-to-pause-JS-timers-and-block-JS-eve.patch</filename>
            <type>text/plain</type>
            <size>3266</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA4MmEwYjVjYWFjYmIyMTc1NGRhZTE1N2NlMjFjY2FlYTFhNjAwNGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDcgTWFyIDIwMDggMTE6MzU6MDUgLTA1MDAKU3ViamVjdDogW1BGUl0gTWFrZSBpdCBwb3Nz
aWJsZSB0byBwYXVzZSBKUyB0aW1lcnMgYW5kIGJsb2NrIEpTIGV2ZW50IGhhbmRsZXJzIGF0IGEg
cGVyLUZyYW1lIGxldmVsCgotLS0KIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHAg
fCAgICA3ICsrLS0tLS0KIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcCAgfCAgIDIw
ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5oICAg
IHwgICAgNyArKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDUgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHAKaW5kZXggNDdjNDQ0NC4uODQ3
NWM2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCkBAIC00OCwxMSArNDgsNiBAQCBK
U0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6SlNBYnN0cmFjdEV2ZW50TGlzdGVuZXIoYm9vbCBodG1s
KQogCiB2b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZWxl
LCBib29sIGlzV2luZG93RXZlbnQpCiB7Ci0jaWZkZWYgS0pTX0RFQlVHR0VSCi0gICAgaWYgKEtK
U0RlYnVnV2luOjppbnN0YW5jZSgpICYmIEtKU0RlYnVnV2luOjppbnN0YW5jZSgpLT5pblNlc3Np
b24oKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICBFdmVudCogZXZlbnQgPSBlbGU7
CiAKICAgICBKU09iamVjdCogbGlzdGVuZXIgPSBsaXN0ZW5lck9iaigpOwpAQCAtNjksNiArNjQs
OCBAQCB2b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZWxl
LCBib29sIGlzV2luZG93RXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWZyYW1lLT5z
Y3JpcHRQcm94eSgpLT5pc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmICghZnJh
bWUtPnNjcmlwdFByb3h5KCktPmphdmFTY3JpcHRFdmVudEhhbmRsZXJzRW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm47CiAKICAgICBKU0xvY2sgbG9jazsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfcHJveHkuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHku
Y3BwCmluZGV4IDg0OWRjNGYuLjM3M2RhNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMva2pzX3Byb3h5LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGF1c2VkVGltZW91dHMu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgImtqc19ldmVudHMuaCIKICNpbmNs
dWRlIDxranMvZGVidWdnZXIuaD4KQEAgLTQ5LDYgKzUwLDcgQEAgS0pTUHJveHk6OktKU1Byb3h5
KEZyYW1lKiBmcmFtZSkKICAgICAsIG1faGFuZGxlckxpbmVubygwKQogICAgICwgbV9wcm9jZXNz
aW5nVGltZXJDYWxsYmFjaygwKQogICAgICwgbV9wcm9jZXNzaW5nSW5saW5lQ29kZSgwKQorICAg
ICwgbV9qYXZhU2NyaXB0RXZlbnRIYW5kbGVyc0VuYWJsZWQodHJ1ZSkKIHsKIH0KIApAQCAtMjA4
LDQgKzIxMCwyMiBAQCB2b2lkIEtKU1Byb3h5OjphdHRhY2hEZWJ1Z2dlcihLSlM6OkRlYnVnZ2Vy
KiBkZWJ1Z2dlcikKICAgICAgICAgY3VycmVudERlYnVnZ2VyLT5kZXRhY2gobV9nbG9iYWxPYmpl
Y3QpOwogfQogCit2b2lkIEtKU1Byb3h5OjpzZXRUaW1lb3V0c1BhdXNlZChib29sIHBhdXNlZCkK
K3sKKyAgICBpZiAoIW1fZ2xvYmFsT2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBib29s
IGFscmVhZHlQYXVzZWQgPSBtX3BhdXNlZFRpbWVvdXRzOworICAgIGlmIChhbHJlYWR5UGF1c2Vk
ID09IHBhdXNlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhdXNlZCkgeworICAgICAg
ICAvLyBGSVhNRTogVGhpcyB3b24ndCBzdG9wIHRpbWVycyBjcmVhdGVkIGFmdGVyIHRoaXMgY2Fs
bCByZXR1cm5zIGZyb20gZmlyaW5nLgorICAgICAgICBtX3BhdXNlZFRpbWVvdXRzLnNldChtX2ds
b2JhbE9iamVjdC0+cGF1c2VUaW1lb3V0cygpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2ds
b2JhbE9iamVjdC0+cmVzdW1lVGltZW91dHMobV9wYXVzZWRUaW1lb3V0cy5nZXQoKSk7CisgICAg
ICAgIG1fcGF1c2VkVGltZW91dHMuY2xlYXIoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmggYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5oCmluZGV4IGFhYzU4ODAuLjQ1ZTdkMDEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfcHJveHkuaApAQCAtNzAsNiArNzAsMTEgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhdHRhY2hEZWJ1Z2dlcihLSlM6OkRlYnVnZ2VyKik7CiAKKyAgICB2b2lkIHNldFRpbWVv
dXRzUGF1c2VkKGJvb2wpOworCisgICAgdm9pZCBzZXRKYXZhU2NyaXB0RXZlbnRIYW5kbGVyc0Vu
YWJsZWQoYm9vbCBiKSB7IG1famF2YVNjcmlwdEV2ZW50SGFuZGxlcnNFbmFibGVkID0gYjsgfQor
ICAgIGJvb2wgamF2YVNjcmlwdEV2ZW50SGFuZGxlcnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9qYXZhU2NyaXB0RXZlbnRIYW5kbGVyc0VuYWJsZWQ7IH0KKwogcHJpdmF0ZToKICAgICB2b2lk
IGluaXRTY3JpcHRJZk5lZWRlZCgpCiAgICAgewpAQCAtODQsNiArODksOCBAQCBwcml2YXRlOgog
ICAgIAogICAgIGJvb2wgbV9wcm9jZXNzaW5nVGltZXJDYWxsYmFjazsKICAgICBib29sIG1fcHJv
Y2Vzc2luZ0lubGluZUNvZGU7CisgICAgT3duUHRyPFBhdXNlZFRpbWVvdXRzPiBtX3BhdXNlZFRp
bWVvdXRzOworICAgIGJvb2wgbV9qYXZhU2NyaXB0RXZlbnRIYW5kbGVyc0VuYWJsZWQ7CiB9Owog
CiB9Ci0tIAoxLjUuNC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19589</attachid>
            <date>2008-03-07 09:23:40 -0800</date>
            <delta_ts>2008-03-13 08:33:24 -0700</delta_ts>
            <desc>[WIP] Make it possible to pause/resume the DatabaseThread</desc>
            <filename>0002-Make-it-possible-to-pause-resume-the-DatabaseThread.patch</filename>
            <type>text/plain</type>
            <size>4157</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAzOGYxNzg2OTVlZDI1N2M1ZTA2NDQ1OTA0NzkxNzFhYmFkMDZiNGI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDcgTWFyIDIwMDggMTE6Mjg6MzggLTA1MDAKU3ViamVjdDogW1BGUl0gTWFrZSBpdCBwb3Nz
aWJsZSB0byBwYXVzZS9yZXN1bWUgdGhlIERhdGFiYXNlVGhyZWFkCgotLS0KIEphdmFTY3JpcHRD
b3JlL3d0Zi9NZXNzYWdlUXVldWUuaCAgfCAgIDMzICsrKysrKysrKysrKysrKysrKysrKysrKysr
KystLS0tLQogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmNwcCB8ICAgIDUgKysrKysK
IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oICAgfCAgICAyICsrCiAzIGZpbGVzIGNo
YW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvd3RmL01lc3NhZ2VRdWV1ZS5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL01lc3Nh
Z2VRdWV1ZS5oCmluZGV4IGYwZmY3NmEuLjE4ZThlZWUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3d0Zi9NZXNzYWdlUXVldWUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvTWVzc2FnZVF1
ZXVlLmgKQEAgLTM5LDEyICszOSwxNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEYXRhVHlwZT4KICAgICBjbGFzcyBNZXNzYWdlUXVldWUgOiBOb25jb3B5YWJsZSB7
CiAgICAgcHVibGljOgotICAgICAgICBNZXNzYWdlUXVldWUoKSA6IG1fa2lsbGVkKGZhbHNlKSB7
fQorICAgICAgICBNZXNzYWdlUXVldWUoKQorICAgICAgICAgICAgOiBtX2tpbGxlZChmYWxzZSkK
KyAgICAgICAgICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgICAgIHsKKyAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgdm9pZCBhcHBlbmQoY29uc3QgRGF0YVR5cGUmKTsKICAgICAgICAgdm9p
ZCBwcmVwZW5kKGNvbnN0IERhdGFUeXBlJik7CiAgICAgICAgIGJvb2wgd2FpdEZvck1lc3NhZ2Uo
RGF0YVR5cGUmKTsKICAgICAgICAgYm9vbCB0cnlHZXRNZXNzYWdlKERhdGFUeXBlJik7CisgICAg
ICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wpOwogICAgICAgICB2b2lkIGtpbGwoKTsKICAgICAgICAg
Ym9vbCBraWxsZWQoKSBjb25zdDsKIApAQCAtNTMsNiArNTgsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICAgICAgVGhyZWFkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxEYXRh
VHlwZT4gbV9xdWV1ZTsKICAgICAgICAgYm9vbCBtX2tpbGxlZDsKKyAgICAgICAgYm9vbCBtX3Bh
dXNlZDsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CkBAIC02MCw3
ICs2Niw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
ayhtX211dGV4KTsKICAgICAgICAgbV9xdWV1ZS5hcHBlbmQobWVzc2FnZSk7Ci0gICAgICAgIG1f
Y29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBpZiAoIW1fcGF1c2VkKQorICAgICAgICAgICAg
bV9jb25kaXRpb24uc2lnbmFsKCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CkBAIC02OCwxNSArNzUsMTYgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgewogICAgICAg
ICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLnByZXBlbmQobWVz
c2FnZSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBpZiAoIW1fcGF1
c2VkKQorICAgICAgICAgICAgbV9jb25kaXRpb24uc2lnbmFsKCk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6d2FpdEZvck1lc3NhZ2UoRGF0YVR5cGUmIHJlc3VsdCkKICAgICB7CiAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7Ci0gICAgICAgIAotICAgICAgICB3aGlsZSAoIW1f
a2lsbGVkICYmIG1fcXVldWUuaXNFbXB0eSgpKQorCisgICAgICAgIHdoaWxlICghbV9raWxsZWQg
JiYgKG1fcGF1c2VkIHx8IG1fcXVldWUuaXNFbXB0eSgpKSkKICAgICAgICAgICAgIG1fY29uZGl0
aW9uLndhaXQobV9tdXRleCk7CiAKICAgICAgICAgaWYgKG1fa2lsbGVkKQpAQCAtOTEsNiArOTks
NyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAg
ICBpbmxpbmUgYm9vbCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlKERhdGFU
eXBlJiByZXN1bHQpCiAgICAgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2QgaWdub3Jl
cyBtX3BhdXNlZC4gVGhpcyBpcyBPSyBmb3IgY3VycmVudCBjYWxsZXJzLCBidXQgbWlnaHQgbm90
IGJlIE9LIGluIHRoZSBmdXR1cmUuCiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7
CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEw
Myw2ICsxMTIsMjAgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGF0YVR5cGU+CisgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6
c2V0UGF1c2VkKGJvb2wgcGF1c2VkKQorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayht
X211dGV4KTsKKyAgICAgICAgaWYgKG1fa2lsbGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmIChtX3BhdXNlZCA9PSBwYXVzZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbV9wYXVzZWQgPSBwYXVzZWQ7CisgICAgICAgIGlmICghbV9wYXVzZWQpCisgICAgICAgICAg
ICBtX2NvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxs
KCkKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlVGhyZWFkLmNwcAppbmRleCAzMTUzNTM2Li40YTRhODRmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9EYXRh
YmFzZVRocmVhZC5jcHAKQEAgLTY3LDYgKzY3LDExIEBAIGJvb2wgRGF0YWJhc2VUaHJlYWQ6OnRl
cm1pbmF0aW9uUmVxdWVzdGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9xdWV1ZS5raWxsZWQoKTsK
IH0KIAordm9pZCBEYXRhYmFzZVRocmVhZDo6c2V0UGF1c2VkKGJvb2wgcGF1c2VkKQoreworICAg
IG1fcXVldWUuc2V0UGF1c2VkKHBhdXNlZCk7Cit9CisKIHZvaWQqIERhdGFiYXNlVGhyZWFkOjpk
YXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqIHZEYXRhYmFzZVRocmVhZCkKIHsKICAgICBEYXRhYmFz
ZVRocmVhZCogZGJUaHJlYWQgPSBzdGF0aWNfY2FzdDxEYXRhYmFzZVRocmVhZCo+KHZEYXRhYmFz
ZVRocmVhZCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuaCBi
L1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oCmluZGV4IGU2MTI0MTUuLmQ0ZmU4YjEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlcXVlc3RUZXJtaW5hdGlvbigpOwogICAgIGJvb2wgdGVybWluYXRpb25SZXF1ZXN0
ZWQoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wpOworCiAgICAgdm9pZCBzY2hl
ZHVsZVRhc2soRGF0YWJhc2VUYXNrKik7CiAgICAgdm9pZCBzY2hlZHVsZUltbWVkaWF0ZVRhc2so
RGF0YWJhc2VUYXNrKik7IC8vIFRoaXMganVzdCBhZGRzIHRoZSB0YXNrIHRvIHRoZSBmcm9udCBv
ZiB0aGUgcXVldWUgLSB0aGUgY2FsbGVyIG5lZWRzIHRvIGJlIGV4dHJlbWVseSBjYXJlZnVsIG5v
dCB0byBjcmVhdGUgZGVhZGxvY2tzIHdoZW4gd2FpdGluZyBmb3IgY29tcGxldGlvbi4KICAgICB2
b2lkIHVuc2NoZWR1bGVEYXRhYmFzZVRhc2tzKERhdGFiYXNlKik7Ci0tIAoxLjUuNC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19590</attachid>
            <date>2008-03-07 09:24:05 -0800</date>
            <delta_ts>2008-03-20 16:56:09 -0700</delta_ts>
            <desc>[WIP] Make it possible to pause/block JS from plugins (Windows only)</desc>
            <filename>0005-Make-it-possible-to-pause-block-JS-in-plugins.patch</filename>
            <type>text/plain</type>
            <size>2534</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBhNzVmNDFkOWFmNTc3YTg2N2ExOWM0MmZhZWY4MTFlMzMzYzA4NzcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDcgTWFyIDIwMDggMTI6MjI6MDUgLTA1MDAKU3ViamVjdDogW1BGUl0gTWFrZSBpdCBwb3Nz
aWJsZSB0byBwYXVzZS9ibG9jayBKUyBpbiBwbHVnaW5zCgotLS0KIFdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmggICAgICAgICAgfCAgICA1ICsrKysrCiBXZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpblZpZXdXaW4uY3BwIHwgICAxOCArKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdl
ZCwgMjMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRl
eCA2OTUyNDM3Li42MTZlYjFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTEwOCw2ICsxMDgsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBhcmVQb3B1cHNBbGxvd2VkKCkg
Y29uc3Q7CiAKKyAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UGF1c2VkKGJvb2wpOworCiAgICAg
ICAgIHZvaWQgZGlzY29ubmVjdFN0cmVhbShQbHVnaW5TdHJlYW0qKTsKICAgICAgICAgdm9pZCBz
dHJlYW1EaWRGaW5pc2hMb2FkaW5nKFBsdWdpblN0cmVhbSogc3RyZWFtKSB7IGRpc2Nvbm5lY3RT
dHJlYW0oc3RyZWFtKTsgfQogCkBAIC0yMTEsNiArMjEzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1fbG9hZE1hbnVhbGx5OwogICAgICAgICBSZWZQdHI8UGx1Z2luU3Ry
ZWFtPiBtX21hbnVhbFN0cmVhbTsKIAorICAgICAgICBib29sIG1faXNKYXZhU2NyaXB0UGF1c2Vk
OworICAgICAgICBib29sIG1fcmVxdWVzdFRpbWVyV2FzQWN0aXZlOworCiAgICAgICAgIHN0YXRp
YyBQbHVnaW5WaWV3KiBzX2N1cnJlbnRQbHVnaW5WaWV3OwogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwCmluZGV4IDZhYTYwM2MuLjNhNzkyMjYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcApAQCAtMTI4NSw2ICsxMjg1LDkgQEAgdm9pZCBQbHVn
aW5WaWV3OjpzdGF0dXMoY29uc3QgY2hhciogbWVzc2FnZSkKIAogTlBFcnJvciBQbHVnaW5WaWV3
OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiB7CisgICAgaWYg
KG1faXNKYXZhU2NyaXB0UGF1c2VkKQorICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJP
UjsKKwogICAgIHN3aXRjaCAodmFyaWFibGUpIHsKICAgICAgICAgY2FzZSBOUE5WV2luZG93TlBP
YmplY3Q6IHsKICAgICAgICAgICAgIE5QT2JqZWN0KiB3aW5kb3dTY3JpcHRPYmplY3QgPSBtX3Bh
cmVudEZyYW1lLT53aW5kb3dTY3JpcHROUE9iamVjdCgpOwpAQCAtMTQxNSw2ICsxNDE4LDE5IEBA
IGJvb2wgUGx1Z2luVmlldzo6YXJlUG9wdXBzQWxsb3dlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCit2b2lkIFBsdWdpblZpZXc6OnNldEphdmFTY3JpcHRQYXVzZWQoYm9vbCBwYXVz
ZWQpCit7CisgICAgaWYgKG1faXNKYXZhU2NyaXB0UGF1c2VkID09IHBhdXNlZCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1faXNKYXZhU2NyaXB0UGF1c2VkID0gcGF1c2VkOworCisgICAgaWYgKG1f
aXNKYXZhU2NyaXB0UGF1c2VkKSB7CisgICAgICAgIG1fcmVxdWVzdFRpbWVyV2FzQWN0aXZlID0g
bV9yZXF1ZXN0VGltZXIuaXNBY3RpdmUoKTsKKyAgICAgICAgbV9yZXF1ZXN0VGltZXIuc3RvcCgp
OworICAgIH0gZWxzZSBpZiAobV9yZXF1ZXN0VGltZXJXYXNBY3RpdmUpCisgICAgICAgIG1fcmVx
dWVzdFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogS0pTOjpCaW5kaW5nczo6SW5zdGFuY2Uq
IFBsdWdpblZpZXc6OmJpbmRpbmdJbnN0YW5jZSgpCiB7CiAgICAgTlBPYmplY3QqIG9iamVjdCA9
IDA7CkBAIC0xNTEzLDYgKzE1MjksOCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBw
YXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogICAgICwg
bV9pc0NhbGxpbmdQbHVnaW5XbmRQcm9jKGZhbHNlKQogICAgICwgbV9sb2FkTWFudWFsbHkobG9h
ZE1hbnVhbGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkKKyAgICAsIG1faXNKYXZhU2NyaXB0
UGF1c2VkKGZhbHNlKQorICAgICwgbV9yZXF1ZXN0VGltZXJXYXNBY3RpdmUoZmFsc2UpCiB7CiAg
ICAgaWYgKCFtX3BsdWdpbikgewogICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5v
dEZpbmRQbHVnaW47Ci0tIAoxLjUuNC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19725</attachid>
            <date>2008-03-13 08:33:24 -0700</date>
            <delta_ts>2008-03-13 08:40:57 -0700</delta_ts>
            <desc>[WIP] Make it possible to pause/resume callOnMainThread callbacks (Windows only)</desc>
            <filename>0001-Make-it-possible-to-pause-callOnMainThread-callbacks.patch</filename>
            <type>text/plain</type>
            <size>2518</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA0MjY5OWI3NDkzMjA3YzQ4ZDY1NDE5NmI5MTdmODkyOTRkNDA2ZDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDExOjMyOjAzIC0wNDAwClN1YmplY3Q6IFtQRlJdIE1ha2UgaXQgcG9z
c2libGUgdG8gcGF1c2UgY2FsbE9uTWFpblRocmVhZCBjYWxsYmFja3MKCi0tLQogV2ViQ29yZS9w
bGF0Zm9ybS9NYWluVGhyZWFkLmggICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvcGxhdGZvcm0v
d2luL01haW5UaHJlYWRXaW4uY3BwIHwgICAyNCArKysrKysrKysrKysrKysrKysrKysrKy0KIDIg
ZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTWFp
blRocmVhZC5oCmluZGV4IDU1NzU4ZWEuLmU5NDU5ZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vTWFpblRocmVhZC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZC5oCkBA
IC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgdm9pZCBNYWluVGhy
ZWFkRnVuY3Rpb24odm9pZCopOwogCiB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1
bmN0aW9uKiwgdm9pZCogY29udGV4dCk7Cit2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVz
ZWQoYm9vbCk7CiAKIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZ0FuZE1haW5UaHJlYWQoKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcAppbmRleCA2ZDM0OTNjLi41YjEyYmZk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcApAQCAtNDcsNiArNDcsNyBA
QCBzdGF0aWMgSFdORCB0aHJlYWRpbmdXaW5kb3dIYW5kbGUgPSAwOwogc3RhdGljIFVJTlQgdGhy
ZWFkaW5nRmlyZWRNZXNzYWdlID0gMDsKIGNvbnN0IExQQ1dTVFIga1RocmVhZGluZ1dpbmRvd0Ns
YXNzTmFtZSA9IEwiVGhyZWFkaW5nV2luZG93Q2xhc3MiOwogc3RhdGljIGJvb2wgcHJvY2Vzc2lu
Z0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSBmYWxzZTsKK3N0YXRpYyBib29sIGNhbGxiYWNrc1Bh
dXNlZDsKIAogc3RhdGljIE11dGV4JiBmdW5jdGlvblF1ZXVlTXV0ZXgoKQogewpAQCAtNjAsNiAr
NjEsMTIgQEAgc3RhdGljIEZ1bmN0aW9uUXVldWUmIGZ1bmN0aW9uUXVldWUoKQogICAgIHJldHVy
biBzdGF0aWNGdW5jdGlvblF1ZXVlOwogfQogCitzdGF0aWMgTXV0ZXgmIGNhbGxiYWNrc1BhdXNl
ZE11dGV4KCkKK3sKKyAgICBzdGF0aWMgTXV0ZXggbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4Owor
fQorCiBzdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25zT25NYWluVGhyZWFkKCkKIHsKICAgICBGdW5j
dGlvblF1ZXVlIHF1ZXVlQ29weTsKQEAgLTc1LDcgKzgyLDkgQEAgc3RhdGljIHZvaWQgY2FsbEZ1
bmN0aW9uc09uTWFpblRocmVhZCgpCiAKIExSRVNVTFQgQ0FMTEJBQ0sgVGhyZWFkaW5nV2luZG93
V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQ
YXJhbSkKIHsKLSAgICBpZiAobWVzc2FnZSA9PSB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UpIHsKKyAg
ICBNdXRleExvY2tlciBsb2NrKGNhbGxiYWNrc1BhdXNlZE11dGV4KCkpOworCisgICAgaWYgKCFj
YWxsYmFja3NQYXVzZWQgJiYgbWVzc2FnZSA9PSB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UpIHsKICAg
ICAgICAgcHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSB0cnVlOwogICAgICAgICBj
YWxsRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7CiAgICAgICAgIHByb2Nlc3NpbmdDdXN0b21UaHJl
YWRpbmdNZXNzYWdlID0gZmFsc2U7CkBAIC0xMjAsNCArMTI5LDE3IEBAIHZvaWQgY2FsbE9uTWFp
blRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQogICAg
IFBvc3RNZXNzYWdlKHRocmVhZGluZ1dpbmRvd0hhbmRsZSwgdGhyZWFkaW5nRmlyZWRNZXNzYWdl
LCAwLCAwKTsKIH0KIAordm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1
c2VkKQoreworICAgIE11dGV4TG9ja2VyIGxvY2soY2FsbGJhY2tzUGF1c2VkTXV0ZXgoKSk7CisK
KyAgICBpZiAocGF1c2VkID09IGNhbGxiYWNrc1BhdXNlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcGF1c2VkID0gY2FsbGJhY2tzUGF1c2VkOworCisgICAgaWYgKCFjYWxsYmFja3NQYXVzZWQp
CisgICAgICAgIFBvc3RNZXNzYWdlKHRocmVhZGluZ1dpbmRvd0hhbmRsZSwgdGhyZWFkaW5nRmly
ZWRNZXNzYWdlLCAwLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotLSAKMS41LjQu
MTguZ2QwYjgKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19726</attachid>
            <date>2008-03-13 08:40:57 -0700</date>
            <delta_ts>2008-03-13 09:11:51 -0700</delta_ts>
            <desc>[WIP (revised)] Pause/resume of callOnMainThread (Windows only)</desc>
            <filename>0001-Make-it-possible-to-pause-callOnMainThread-callbacks.patch</filename>
            <type>text/plain</type>
            <size>2213</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBjZWI1ZTg1ODQxNTcyM2FiM2Q4NjhkNmM3MTI3MGIxOTNjODFhMDQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDExOjMyOjAzIC0wNDAwClN1YmplY3Q6IFtQRlJdIE1ha2UgaXQgcG9z
c2libGUgdG8gcGF1c2UgY2FsbE9uTWFpblRocmVhZCBjYWxsYmFja3MKCi0tLQogV2ViQ29yZS9w
bGF0Zm9ybS9NYWluVGhyZWFkLmggICAgICAgICAgfCAgICAzICsrKwogV2ViQ29yZS9wbGF0Zm9y
bS93aW4vTWFpblRocmVhZFdpbi5jcHAgfCAgIDE0ICsrKysrKysrKysrKystCiAyIGZpbGVzIGNo
YW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmggYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQu
aAppbmRleCA1NTc1OGVhLi4wY2Q1NzRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL01h
aW5UaHJlYWQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuaApAQCAtMzgsNiAr
MzgsOSBAQCB0eXBlZGVmIHZvaWQgTWFpblRocmVhZEZ1bmN0aW9uKHZvaWQqKTsKIAogdm9pZCBj
YWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiosIHZvaWQqIGNvbnRleHQpOwogCisv
LyBUaGlzIGZ1bmN0aW9uIG1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4K
K3ZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29sKTsKKwogdm9pZCBpbml0aWFs
aXplVGhyZWFkaW5nQW5kTWFpblRocmVhZCgpOwogCiAjaWYgIVBMQVRGT1JNKFdJTikKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAKaW5kZXggNmQzNDkzYy4uMDQ1ZTFmYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgc3Rh
dGljIEhXTkQgdGhyZWFkaW5nV2luZG93SGFuZGxlID0gMDsKIHN0YXRpYyBVSU5UIHRocmVhZGlu
Z0ZpcmVkTWVzc2FnZSA9IDA7CiBjb25zdCBMUENXU1RSIGtUaHJlYWRpbmdXaW5kb3dDbGFzc05h
bWUgPSBMIlRocmVhZGluZ1dpbmRvd0NsYXNzIjsKIHN0YXRpYyBib29sIHByb2Nlc3NpbmdDdXN0
b21UaHJlYWRpbmdNZXNzYWdlID0gZmFsc2U7CitzdGF0aWMgYm9vbCBjYWxsYmFja3NQYXVzZWQ7
CiAKIHN0YXRpYyBNdXRleCYgZnVuY3Rpb25RdWV1ZU11dGV4KCkKIHsKQEAgLTc1LDcgKzc2LDcg
QEAgc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCiAKIExSRVNVTFQgQ0FM
TEJBQ0sgVGhyZWFkaW5nV2luZG93V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BB
UkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIHsKLSAgICBpZiAobWVzc2FnZSA9PSB0aHJlYWRp
bmdGaXJlZE1lc3NhZ2UpIHsKKyAgICBpZiAoIWNhbGxiYWNrc1BhdXNlZCAmJiBtZXNzYWdlID09
IHRocmVhZGluZ0ZpcmVkTWVzc2FnZSkgewogICAgICAgICBwcm9jZXNzaW5nQ3VzdG9tVGhyZWFk
aW5nTWVzc2FnZSA9IHRydWU7CiAgICAgICAgIGNhbGxGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsK
ICAgICAgICAgcHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSBmYWxzZTsKQEAgLTEy
MCw0ICsxMjEsMTUgQEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiog
ZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCiAgICAgUG9zdE1lc3NhZ2UodGhyZWFkaW5nV2luZG93
SGFuZGxlLCB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UsIDAsIDApOwogfQogCit2b2lkIHNldE1haW5U
aHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpCit7CisgICAgaWYgKHBhdXNlZCA9PSBj
YWxsYmFja3NQYXVzZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxiYWNrc1BhdXNlZCA9
IHBhdXNlZDsKKworICAgIGlmICghY2FsbGJhY2tzUGF1c2VkKQorICAgICAgICBQb3N0TWVzc2Fn
ZSh0aHJlYWRpbmdXaW5kb3dIYW5kbGUsIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSwgMCwgMCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLS0gCjEuNS40LjE4LmdkMGI4Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19728</attachid>
            <date>2008-03-13 09:07:58 -0700</date>
            <delta_ts>2008-03-13 09:15:25 -0700</delta_ts>
            <desc>[WIP] Make more MainThread code cross-platform</desc>
            <filename>0001-Make-more-of-the-MainThread-code-cross-platform.patch</filename>
            <type>text/plain</type>
            <size>9363</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAyMzhlOTZiN2JjODU2ZDkxZDgzNDU4MThkODZlNDJlZDM2YjBiMTIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDEyOjA0OjQyIC0wNDAwClN1YmplY3Q6IFtQRlIgMS8yXSBNYWtlIG1v
cmUgb2YgdGhlIE1haW5UaHJlYWQgY29kZSBjcm9zcy1wbGF0Zm9ybQoKLS0tCiBXZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICB8ICAgIDggKysrCiBXZWJDb3JlL3BsYXRmb3Jt
L01haW5UaHJlYWQuY3BwICAgICAgICB8ICAgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIFdlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmggIHwgICAzOSArKysr
KysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAgfCAgIDY2
ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNDQgaW5zZXJ0aW9u
cygrKSwgNTkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS9NYWluVGhyZWFkLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vTWFp
blRocmVhZEludGVybmFsLmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBjMDI2N2JjLi5lZTM5MmQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTM1NTQsMTAgKzM1NTQsMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTWFpblRocmVhZC5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxNYWlu
VGhyZWFkLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFkSW50ZXJuYWwuaCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXE1JTUVUeXBlUmVn
aXN0cnkuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vTWFpblRocmVhZC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNDA1NjQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNYWluVGhyZWFkLmgiCisKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWFpblRocmVhZEludGVybmFsLmgiCisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGdW5j
dGlvbldpdGhDb250ZXh0IHsKKyAgICBNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uOworICAg
IHZvaWQqIGNvbnRleHQ7CisgICAgRnVuY3Rpb25XaXRoQ29udGV4dChNYWluVGhyZWFkRnVuY3Rp
b24qIGYgPSAwLCB2b2lkKiBjID0gMCkgOiBmdW5jdGlvbihmKSwgY29udGV4dChjKSB7IH0KK307
CisKK3R5cGVkZWYgVmVjdG9yPEZ1bmN0aW9uV2l0aENvbnRleHQ+IEZ1bmN0aW9uUXVldWU7CisK
K3N0YXRpYyBib29sIGRpc3BhdGNoaW5nQ2FsbGJhY2tzOworCitzdGF0aWMgTXV0ZXgmIGZ1bmN0
aW9uUXVldWVNdXRleCgpCit7CisgICAgc3RhdGljIE11dGV4IHN0YXRpY0Z1bmN0aW9uUXVldWVN
dXRleDsKKyAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZU11dGV4OworfQorCitzdGF0aWMg
RnVuY3Rpb25RdWV1ZSYgZnVuY3Rpb25RdWV1ZSgpCit7CisgICAgc3RhdGljIEZ1bmN0aW9uUXVl
dWUgc3RhdGljRnVuY3Rpb25RdWV1ZTsKKyAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZTsK
K30KKwordm9pZCBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCkKK3sKKyAgICBGdW5j
dGlvblF1ZXVlIHF1ZXVlQ29weTsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihm
dW5jdGlvblF1ZXVlTXV0ZXgoKSk7CisgICAgICAgIHF1ZXVlQ29weS5zd2FwKGZ1bmN0aW9uUXVl
dWUoKSk7CisgICAgfQorCisgICAgZGlzcGF0Y2hpbmdDYWxsYmFja3MgPSB0cnVlOworICAgIExP
RyhUaHJlYWRpbmcsICJDYWxsaW5nICV1IGZ1bmN0aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQiLCBx
dWV1ZUNvcHkuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcXVldWVDb3B5
LnNpemUoKTsgKytpKQorICAgICAgICBxdWV1ZUNvcHlbaV0uZnVuY3Rpb24ocXVldWVDb3B5W2ld
LmNvbnRleHQpOworICAgIGRpc3BhdGNoaW5nQ2FsbGJhY2tzID0gZmFsc2U7Cit9CisKK3ZvaWQg
Y2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250
ZXh0KQoreworICAgIEFTU0VSVChmdW5jdGlvbik7CisKKyAgICBpZiAoZGlzcGF0Y2hpbmdDYWxs
YmFja3MpCisgICAgICAgIExPRyhUaHJlYWRpbmcsICJjYWxsT25NYWluVGhyZWFkKCkgY2FsbGVk
IHJlY3Vyc2l2ZWx5LiIpOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoZnVu
Y3Rpb25RdWV1ZU11dGV4KCkpOworICAgICAgICBmdW5jdGlvblF1ZXVlKCkuYXBwZW5kKEZ1bmN0
aW9uV2l0aENvbnRleHQoZnVuY3Rpb24sIGNvbnRleHQpKTsKKyAgICB9CisKKyAgICBzY2hlZHVs
ZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmY3MzBmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL01haW5UaHJlYWRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWFp
blRocmVhZEludGVybmFsX2gKKyNkZWZpbmUgTWFpblRocmVhZEludGVybmFsX2gKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisgICAgdm9pZCBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFk
KCk7CisgICAgdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1haW5UaHJlYWRJbnRlcm5hbF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwCmluZGV4IDZkMzQ5M2MuLjgwZjk3
NTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwCkBAIC0yNyw1OSArMjcs
MjMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTWFpblRocmVhZC5o
IgorI2luY2x1ZGUgIk1haW5UaHJlYWRJbnRlcm5hbC5oIgogCi0jaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBGdW5jdGlvbldp
dGhDb250ZXh0IHsKLSAgICBNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uOwotICAgIHZvaWQq
IGNvbnRleHQ7Ci0gICAgRnVuY3Rpb25XaXRoQ29udGV4dChNYWluVGhyZWFkRnVuY3Rpb24qIGYg
PSAwLCB2b2lkKiBjID0gMCkgOiBmdW5jdGlvbihmKSwgY29udGV4dChjKSB7IH0KLX07Ci0KLXR5
cGVkZWYgVmVjdG9yPEZ1bmN0aW9uV2l0aENvbnRleHQ+IEZ1bmN0aW9uUXVldWU7Ci0KLXN0YXRp
YyBIV05EIHRocmVhZGluZ1dpbmRvd0hhbmRsZSA9IDA7Ci1zdGF0aWMgVUlOVCB0aHJlYWRpbmdG
aXJlZE1lc3NhZ2UgPSAwOworc3RhdGljIEhXTkQgdGhyZWFkaW5nV2luZG93SGFuZGxlOworc3Rh
dGljIFVJTlQgdGhyZWFkaW5nRmlyZWRNZXNzYWdlOwogY29uc3QgTFBDV1NUUiBrVGhyZWFkaW5n
V2luZG93Q2xhc3NOYW1lID0gTCJUaHJlYWRpbmdXaW5kb3dDbGFzcyI7Ci1zdGF0aWMgYm9vbCBw
cm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5nTWVzc2FnZSA9IGZhbHNlOwotCi1zdGF0aWMgTXV0ZXgm
IGZ1bmN0aW9uUXVldWVNdXRleCgpCi17Ci0gICAgc3RhdGljIE11dGV4IHN0YXRpY0Z1bmN0aW9u
UXVldWVNdXRleDsKLSAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZU11dGV4OwotfQotCi1z
dGF0aWMgRnVuY3Rpb25RdWV1ZSYgZnVuY3Rpb25RdWV1ZSgpCi17Ci0gICAgc3RhdGljIEZ1bmN0
aW9uUXVldWUgc3RhdGljRnVuY3Rpb25RdWV1ZTsKLSAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25R
dWV1ZTsKLX0KLQotc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCi17Ci0g
ICAgRnVuY3Rpb25RdWV1ZSBxdWV1ZUNvcHk7Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIoZnVuY3Rpb25RdWV1ZU11dGV4KCkpOwotICAgICAgICBxdWV1ZUNvcHkuc3dhcChmdW5j
dGlvblF1ZXVlKCkpOwotICAgIH0KLQotICAgIExPRyhUaHJlYWRpbmcsICJDYWxsaW5nICV1IGZ1
bmN0aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQiLCBxdWV1ZUNvcHkuc2l6ZSgpKTsKLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgcXVldWVDb3B5LnNpemUoKTsgKytpKQotICAgICAgICBxdWV1
ZUNvcHlbaV0uZnVuY3Rpb24ocXVldWVDb3B5W2ldLmNvbnRleHQpOwotfQogCiBMUkVTVUxUIENB
TExCQUNLIFRocmVhZGluZ1dpbmRvd1duZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7Ci0gICAgaWYgKG1lc3NhZ2UgPT0gdGhyZWFk
aW5nRmlyZWRNZXNzYWdlKSB7Ci0gICAgICAgIHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNz
YWdlID0gdHJ1ZTsKLSAgICAgICAgY2FsbEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOwotICAgICAg
ICBwcm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5nTWVzc2FnZSA9IGZhbHNlOwotICAgIH0gZWxzZQor
ICAgIGlmIChtZXNzYWdlID09IHRocmVhZGluZ0ZpcmVkTWVzc2FnZSkKKyAgICAgICAgZGlzcGF0
Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpOworICAgIGVsc2UKICAgICAgICAgcmV0dXJuIERl
ZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwogICAgIHJldHVybiAw
OwogfQpAQCAtMTA0LDIwICs2OCw0IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZ0FuZE1haW5U
aHJlYWQoKQogICAgIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSA9IFJlZ2lzdGVyV2luZG93TWVzc2Fn
ZShMImNvbS5hcHBsZS5XZWJLaXQuTWFpblRocmVhZEZpcmVkIik7CiB9CiAgICAgCi12b2lkIGNh
bGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4
dCkKLXsKLSAgICBBU1NFUlQoZnVuY3Rpb24pOwotICAgIEFTU0VSVCh0aHJlYWRpbmdXaW5kb3dI
YW5kbGUpOwotCi0gICAgaWYgKHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlKQotICAg
ICAgICBMT0coVGhyZWFkaW5nLCAiY2FsbE9uTWFpblRocmVhZCgpIGNhbGxlZCByZWN1cnNpdmVs
eS4gIEJld2FyZSBvZiBuZXN0ZWQgUG9zdE1lc3NhZ2UoKXMiKTsKLQotICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKGZ1bmN0aW9uUXVldWVNdXRleCgpKTsKLSAgICAgICAgZnVuY3Rp
b25RdWV1ZSgpLmFwcGVuZChGdW5jdGlvbldpdGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7
Ci0gICAgfQotCi0gICAgUG9zdE1lc3NhZ2UodGhyZWFkaW5nV2luZG93SGFuZGxlLCB0aHJlYWRp
bmdGaXJlZE1lc3NhZ2UsIDAsIDApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0tIAox
LjUuNC4xOC5nZDBiOAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19729</attachid>
            <date>2008-03-13 09:09:26 -0700</date>
            <delta_ts>2008-03-20 16:55:40 -0700</delta_ts>
            <desc>[WIP (revised 2)] Pause/resume of callOnMainThread</desc>
            <filename>0002-Make-it-possible-to-pause-resume-callOnMainThread-ca.patch</filename>
            <type>text/plain</type>
            <size>1873</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA4ODljOWM5Y2EyZDYzNWEzNTgxMjgwNDFlYmU5OGVlZGRjYjA5MTg1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDEyOjA3OjI3IC0wNDAwClN1YmplY3Q6IFtQRlIgMi8yXSBNYWtlIGl0
IHBvc3NpYmxlIHRvIHBhdXNlL3Jlc3VtZSBjYWxsT25NYWluVGhyZWFkIGNhbGxiYWNrcwoKLS0t
CiBXZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuY3BwIHwgICAxNSArKysrKysrKysrKysrKysK
IFdlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZC5oICAgfCAgICAzICsrKwogMiBmaWxlcyBjaGFu
Z2VkLCAxOCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vTWFpblRocmVhZC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQu
Y3BwCmluZGV4IDBlNDA1NjQuLjFmZDg5MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
TWFpblRocmVhZC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmNwcApAQCAt
NDQsNiArNDQsNyBAQCBzdHJ1Y3QgRnVuY3Rpb25XaXRoQ29udGV4dCB7CiB0eXBlZGVmIFZlY3Rv
cjxGdW5jdGlvbldpdGhDb250ZXh0PiBGdW5jdGlvblF1ZXVlOwogCiBzdGF0aWMgYm9vbCBkaXNw
YXRjaGluZ0NhbGxiYWNrczsKK3N0YXRpYyBib29sIGNhbGxiYWNrc1BhdXNlZDsKIAogc3RhdGlj
IE11dGV4JiBmdW5jdGlvblF1ZXVlTXV0ZXgoKQogewpAQCAtNTksNiArNjAsOSBAQCBzdGF0aWMg
RnVuY3Rpb25RdWV1ZSYgZnVuY3Rpb25RdWV1ZSgpCiAKIHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNG
cm9tTWFpblRocmVhZCgpCiB7CisgICAgaWYgKGNhbGxiYWNrc1BhdXNlZCkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgRnVuY3Rpb25RdWV1ZSBxdWV1ZUNvcHk7CiAgICAgewogICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoZnVuY3Rpb25RdWV1ZU11dGV4KCkpOwpAQCAtODcsNCArOTEsMTUgQEAg
dm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZvaWQq
IGNvbnRleHQpCiAgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOwog
fQogCit2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpCit7Cisg
ICAgaWYgKGNhbGxiYWNrc1BhdXNlZCA9PSBwYXVzZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IGNhbGxiYWNrc1BhdXNlZCA9IHBhdXNlZDsKKworICAgIGlmICghY2FsbGJhY2tzUGF1c2VkKQor
ICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRo
cmVhZC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmgKaW5kZXggNTU3NThlYS4uZjVi
N2Q5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmgKQEAgLTM4LDYgKzM4LDkgQEAgdHlwZWRlZiB2b2lk
IE1haW5UaHJlYWRGdW5jdGlvbih2b2lkKik7CiAKIHZvaWQgY2FsbE9uTWFpblRocmVhZChNYWlu
VGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsKIAorLy8gVGhpcyBmdW5jdGlvbiBtYXkg
b25seSBiZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgordm9pZCBzZXRNYWluVGhyZWFkQ2Fs
bGJhY2tzUGF1c2VkKGJvb2wpOworCiB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmdBbmRNYWluVGhy
ZWFkKCk7CiAKICNpZiAhUExBVEZPUk0oV0lOKQotLSAKMS41LjQuMTguZ2QwYjgKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19730</attachid>
            <date>2008-03-13 09:15:25 -0700</date>
            <delta_ts>2008-03-13 09:49:39 -0700</delta_ts>
            <desc>[WIP (revised)] Make more MainThread code shareable</desc>
            <filename>0001-Make-more-of-the-MainThread-code-cross-platform.patch</filename>
            <type>text/plain</type>
            <size>9377</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA0Y2E5MGNhY2UzMjJiMDhjZDAyYjM3MzIxYjhhNDMyMGU2NDcyMTdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDEyOjA0OjQyIC0wNDAwClN1YmplY3Q6IFtQRlIgMS8yXSBNYWtlIG1v
cmUgb2YgdGhlIE1haW5UaHJlYWQgY29kZSBjcm9zcy1wbGF0Zm9ybQoKLS0tCiBXZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDggKysrCiAuLi4v
e3dpbi9NYWluVGhyZWFkV2luLmNwcCA9PiBNYWluVGhyZWFkLmNwcH0gICAgICB8ICAgNTEgKysr
LS0tLS0tLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkSW50ZXJuYWwuaCAgICAg
ICAgICAgICAgfCAgIDM5ICsrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRo
cmVhZFdpbi5jcHAgICAgICAgICAgICAgfCAgIDY0ICsrKy0tLS0tLS0tLS0tLS0tLS0tCiA0IGZp
bGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQogY29weSBXZWJD
b3JlL3BsYXRmb3JtL3t3aW4vTWFpblRocmVhZFdpbi5jcHAgPT4gTWFpblRocmVhZC5jcHB9ICg2
MyUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkSW50ZXJu
YWwuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGMwMjY3YmMuLmVl
MzkyZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzU1NCwxMCAr
MzU1NCwxOCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFkLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXE1haW5UaHJlYWQuaCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXE1haW5UaHJlYWRJbnRlcm5hbC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTUlNRVR5cGVSZWdpc3RyeS5jcHAiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFp
blRocmVhZFdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuY3BwCnNpbWlsYXJp
dHkgaW5kZXggNjMlCmNvcHkgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2lu
LmNwcApjb3B5IHRvIFdlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZC5jcHAKaW5kZXggNmQzNDkz
Yy4uMGU0MDU2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdp
bi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmNwcApAQCAtMzAsOCArMzAs
OCBAQAogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNp
bmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgIk1haW5UaHJl
YWRJbnRlcm5hbC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00MywxMCArNDMsNyBAQCBzdHJ1Y3QgRnVuY3Rpb25XaXRoQ29udGV4dCB7CiAK
IHR5cGVkZWYgVmVjdG9yPEZ1bmN0aW9uV2l0aENvbnRleHQ+IEZ1bmN0aW9uUXVldWU7CiAKLXN0
YXRpYyBIV05EIHRocmVhZGluZ1dpbmRvd0hhbmRsZSA9IDA7Ci1zdGF0aWMgVUlOVCB0aHJlYWRp
bmdGaXJlZE1lc3NhZ2UgPSAwOwotY29uc3QgTFBDV1NUUiBrVGhyZWFkaW5nV2luZG93Q2xhc3NO
YW1lID0gTCJUaHJlYWRpbmdXaW5kb3dDbGFzcyI7Ci1zdGF0aWMgYm9vbCBwcm9jZXNzaW5nQ3Vz
dG9tVGhyZWFkaW5nTWVzc2FnZSA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlzcGF0Y2hpbmdDYWxs
YmFja3M7CiAKIHN0YXRpYyBNdXRleCYgZnVuY3Rpb25RdWV1ZU11dGV4KCkKIHsKQEAgLTYwLDcg
KzU3LDcgQEAgc3RhdGljIEZ1bmN0aW9uUXVldWUmIGZ1bmN0aW9uUXVldWUoKQogICAgIHJldHVy
biBzdGF0aWNGdW5jdGlvblF1ZXVlOwogfQogCi1zdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25zT25N
YWluVGhyZWFkKCkKK3ZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiB7CiAg
ICAgRnVuY3Rpb25RdWV1ZSBxdWV1ZUNvcHk7CiAgICAgewpAQCAtNjgsNTYgKzY1LDI2IEBAIHN0
YXRpYyB2b2lkIGNhbGxGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQogICAgICAgICBxdWV1ZUNvcHku
c3dhcChmdW5jdGlvblF1ZXVlKCkpOwogICAgIH0KIAorICAgIGRpc3BhdGNoaW5nQ2FsbGJhY2tz
ID0gdHJ1ZTsKICAgICBMT0coVGhyZWFkaW5nLCAiQ2FsbGluZyAldSBmdW5jdGlvbnMgb24gdGhl
IG1haW4gdGhyZWFkIiwgcXVldWVDb3B5LnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHF1ZXVlQ29weS5zaXplKCk7ICsraSkKICAgICAgICAgcXVldWVDb3B5W2ldLmZ1bmN0
aW9uKHF1ZXVlQ29weVtpXS5jb250ZXh0KTsKKyAgICBkaXNwYXRjaGluZ0NhbGxiYWNrcyA9IGZh
bHNlOwogfQogCi1MUkVTVUxUIENBTExCQUNLIFRocmVhZGluZ1dpbmRvd1duZFByb2MoSFdORCBo
V25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCi17Ci0gICAg
aWYgKG1lc3NhZ2UgPT0gdGhyZWFkaW5nRmlyZWRNZXNzYWdlKSB7Ci0gICAgICAgIHByb2Nlc3Np
bmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlID0gdHJ1ZTsKLSAgICAgICAgY2FsbEZ1bmN0aW9uc09u
TWFpblRocmVhZCgpOwotICAgICAgICBwcm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5nTWVzc2FnZSA9
IGZhbHNlOwotICAgIH0gZWxzZQotICAgICAgICByZXR1cm4gRGVmV2luZG93UHJvYyhoV25kLCBt
ZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgaW5pdGlh
bGl6ZVRocmVhZGluZ0FuZE1haW5UaHJlYWQoKQotewotICAgIGlmICh0aHJlYWRpbmdXaW5kb3dI
YW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwotCi0gICAgV05EQ0xBU1NFWCB3Y2V4OwotICAgIG1lbXNldCgmd2NleCwgMCwgc2l6ZW9mKFdO
RENMQVNTRVgpKTsKLSAgICB3Y2V4LmNiU2l6ZSA9IHNpemVvZihXTkRDTEFTU0VYKTsKLSAgICB3
Y2V4LmxwZm5XbmRQcm9jICAgID0gVGhyZWFkaW5nV2luZG93V25kUHJvYzsKLSAgICB3Y2V4LmhJ
bnN0YW5jZSAgICAgID0gUGFnZTo6aW5zdGFuY2VIYW5kbGUoKTsKLSAgICB3Y2V4Lmxwc3pDbGFz
c05hbWUgID0ga1RocmVhZGluZ1dpbmRvd0NsYXNzTmFtZTsKLSAgICBSZWdpc3RlckNsYXNzRXgo
JndjZXgpOwotCi0gICAgdGhyZWFkaW5nV2luZG93SGFuZGxlID0gQ3JlYXRlV2luZG93KGtUaHJl
YWRpbmdXaW5kb3dDbGFzc05hbWUsIDAsIDAsCi0gICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1df
VVNFREVGQVVMVCwgMCwgSFdORF9NRVNTQUdFLCAwLCBQYWdlOjppbnN0YW5jZUhhbmRsZSgpLCAw
KTsKLSAgICB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UgPSBSZWdpc3RlcldpbmRvd01lc3NhZ2UoTCJj
b20uYXBwbGUuV2ViS2l0Lk1haW5UaHJlYWRGaXJlZCIpOwotfQotICAgIAogdm9pZCBjYWxsT25N
YWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCiB7
CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKLSAgICBBU1NFUlQodGhyZWFkaW5nV2luZG93SGFuZGxl
KTsKIAotICAgIGlmIChwcm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5nTWVzc2FnZSkKLSAgICAgICAg
TE9HKFRocmVhZGluZywgImNhbGxPbk1haW5UaHJlYWQoKSBjYWxsZWQgcmVjdXJzaXZlbHkuICBC
ZXdhcmUgb2YgbmVzdGVkIFBvc3RNZXNzYWdlKClzIik7CisgICAgaWYgKGRpc3BhdGNoaW5nQ2Fs
bGJhY2tzKQorICAgICAgICBMT0coVGhyZWFkaW5nLCAiY2FsbE9uTWFpblRocmVhZCgpIGNhbGxl
ZCByZWN1cnNpdmVseS4iKTsKIAogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGZ1
bmN0aW9uUXVldWVNdXRleCgpKTsKICAgICAgICAgZnVuY3Rpb25RdWV1ZSgpLmFwcGVuZChGdW5j
dGlvbldpdGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7CiAgICAgfQogCi0gICAgUG9zdE1l
c3NhZ2UodGhyZWFkaW5nV2luZG93SGFuZGxlLCB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UsIDAsIDAp
OworICAgIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhy
ZWFkSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjczMGY0ZQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmgKQEAgLTAsMCArMSwzOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBD
b21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBNYWluVGhyZWFkSW50ZXJuYWxfaAorI2RlZmluZSBNYWluVGhyZWFkSW50ZXJu
YWxfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICB2b2lkIGRpc3BhdGNoRnVuY3Rpb25z
RnJvbU1haW5UaHJlYWQoKTsKKyAgICB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1h
aW5UaHJlYWQoKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWFpblRo
cmVhZEludGVybmFsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJl
YWRXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAKaW5kZXgg
NmQzNDkzYy4uMDQ2YjE4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRo
cmVhZFdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAK
QEAgLTI3LDU5ICsyNywyMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJNYWluVGhyZWFkLmgiCisjaW5jbHVkZSAiTWFpblRocmVhZEludGVybmFsLmgiCiAKLSNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Ry
dWN0IEZ1bmN0aW9uV2l0aENvbnRleHQgewotICAgIE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rp
b247Ci0gICAgdm9pZCogY29udGV4dDsKLSAgICBGdW5jdGlvbldpdGhDb250ZXh0KE1haW5UaHJl
YWRGdW5jdGlvbiogZiA9IDAsIHZvaWQqIGMgPSAwKSA6IGZ1bmN0aW9uKGYpLCBjb250ZXh0KGMp
IHsgfQotfTsKLQotdHlwZWRlZiBWZWN0b3I8RnVuY3Rpb25XaXRoQ29udGV4dD4gRnVuY3Rpb25R
dWV1ZTsKLQotc3RhdGljIEhXTkQgdGhyZWFkaW5nV2luZG93SGFuZGxlID0gMDsKLXN0YXRpYyBV
SU5UIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSA9IDA7CitzdGF0aWMgSFdORCB0aHJlYWRpbmdXaW5k
b3dIYW5kbGU7CitzdGF0aWMgVUlOVCB0aHJlYWRpbmdGaXJlZE1lc3NhZ2U7CiBjb25zdCBMUENX
U1RSIGtUaHJlYWRpbmdXaW5kb3dDbGFzc05hbWUgPSBMIlRocmVhZGluZ1dpbmRvd0NsYXNzIjsK
LXN0YXRpYyBib29sIHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlID0gZmFsc2U7Ci0K
LXN0YXRpYyBNdXRleCYgZnVuY3Rpb25RdWV1ZU11dGV4KCkKLXsKLSAgICBzdGF0aWMgTXV0ZXgg
c3RhdGljRnVuY3Rpb25RdWV1ZU11dGV4OwotICAgIHJldHVybiBzdGF0aWNGdW5jdGlvblF1ZXVl
TXV0ZXg7Ci19Ci0KLXN0YXRpYyBGdW5jdGlvblF1ZXVlJiBmdW5jdGlvblF1ZXVlKCkKLXsKLSAg
ICBzdGF0aWMgRnVuY3Rpb25RdWV1ZSBzdGF0aWNGdW5jdGlvblF1ZXVlOwotICAgIHJldHVybiBz
dGF0aWNGdW5jdGlvblF1ZXVlOwotfQotCi1zdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25zT25NYWlu
VGhyZWFkKCkKLXsKLSAgICBGdW5jdGlvblF1ZXVlIHF1ZXVlQ29weTsKLSAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihmdW5jdGlvblF1ZXVlTXV0ZXgoKSk7Ci0gICAgICAgIHF1ZXVl
Q29weS5zd2FwKGZ1bmN0aW9uUXVldWUoKSk7Ci0gICAgfQotCi0gICAgTE9HKFRocmVhZGluZywg
IkNhbGxpbmcgJXUgZnVuY3Rpb25zIG9uIHRoZSBtYWluIHRocmVhZCIsIHF1ZXVlQ29weS5zaXpl
KCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBxdWV1ZUNvcHkuc2l6ZSgpOyArK2kp
Ci0gICAgICAgIHF1ZXVlQ29weVtpXS5mdW5jdGlvbihxdWV1ZUNvcHlbaV0uY29udGV4dCk7Ci19
CiAKIExSRVNVTFQgQ0FMTEJBQ0sgVGhyZWFkaW5nV2luZG93V25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIHsKLSAgICBpZiAobWVz
c2FnZSA9PSB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UpIHsKLSAgICAgICAgcHJvY2Vzc2luZ0N1c3Rv
bVRocmVhZGluZ01lc3NhZ2UgPSB0cnVlOwotICAgICAgICBjYWxsRnVuY3Rpb25zT25NYWluVGhy
ZWFkKCk7Ci0gICAgICAgIHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlID0gZmFsc2U7
Ci0gICAgfSBlbHNlCisgICAgaWYgKG1lc3NhZ2UgPT0gdGhyZWFkaW5nRmlyZWRNZXNzYWdlKQor
ICAgICAgICBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCk7CisgICAgZWxzZQogICAg
ICAgICByZXR1cm4gRGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7
CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xMDMsMjAgKzY3LDEwIEBAIHZvaWQgaW5pdGlhbGl6ZVRo
cmVhZGluZ0FuZE1haW5UaHJlYWQoKQogICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURF
RkFVTFQsIDAsIEhXTkRfTUVTU0FHRSwgMCwgUGFnZTo6aW5zdGFuY2VIYW5kbGUoKSwgMCk7CiAg
ICAgdGhyZWFkaW5nRmlyZWRNZXNzYWdlID0gUmVnaXN0ZXJXaW5kb3dNZXNzYWdlKEwiY29tLmFw
cGxlLldlYktpdC5NYWluVGhyZWFkRmlyZWQiKTsKIH0KLSAgICAKLXZvaWQgY2FsbE9uTWFpblRo
cmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQorCit2b2lk
IHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQogewotICAgIEFTU0VSVChm
dW5jdGlvbik7CiAgICAgQVNTRVJUKHRocmVhZGluZ1dpbmRvd0hhbmRsZSk7Ci0KLSAgICBpZiAo
cHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UpCi0gICAgICAgIExPRyhUaHJlYWRpbmcs
ICJjYWxsT25NYWluVGhyZWFkKCkgY2FsbGVkIHJlY3Vyc2l2ZWx5LiAgQmV3YXJlIG9mIG5lc3Rl
ZCBQb3N0TWVzc2FnZSgpcyIpOwotCi0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
ZnVuY3Rpb25RdWV1ZU11dGV4KCkpOwotICAgICAgICBmdW5jdGlvblF1ZXVlKCkuYXBwZW5kKEZ1
bmN0aW9uV2l0aENvbnRleHQoZnVuY3Rpb24sIGNvbnRleHQpKTsKLSAgICB9Ci0KICAgICBQb3N0
TWVzc2FnZSh0aHJlYWRpbmdXaW5kb3dIYW5kbGUsIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSwgMCwg
MCk7CiB9CiAKLS0gCjEuNS40LjE4LmdkMGI4Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19731</attachid>
            <date>2008-03-13 09:49:39 -0700</date>
            <delta_ts>2008-03-13 14:56:14 -0700</delta_ts>
            <desc>[WIP] Share most MainThread code across all platforms</desc>
            <filename>0001-Make-much-of-the-MainThread-code-cross-platform.patch</filename>
            <type>text/plain</type>
            <size>16548</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAxNGE4MjczMjFlNTRjM2E0NzE1ZjRhZThkNDE3YWM0NGIwODViOGUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDEyOjA0OjQyIC0wNDAwClN1YmplY3Q6IFtQRlIgMS8yXSBNYWtlIG11
Y2ggb2YgdGhlIE1haW5UaHJlYWQgY29kZSBjcm9zcy1wbGF0Zm9ybQoKU3RpbGwgbWlzc2luZyB0
aGUgTWFjIC54Y29kZXByb2ogY2hhbmdlCi0tLQogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDggKysrCiBXZWJDb3JlL1dlYkNv
cmVTb3VyY2VzLmJrbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL3t3aW4v
TWFpblRocmVhZFdpbi5jcHAgPT4gTWFpblRocmVhZC5jcHB9ICAgICAgfCAgIDUxICsrKy0tLS0t
LS0tLS0tLS0KIC4uLi97d3gvTWFpblRocmVhZFd4LmNwcCA9PiBNYWluVGhyZWFkSW50ZXJuYWwu
aH0gIHwgICAyMyArKysrLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTWFpblRocmVhZEd0ay5j
cHAgICAgICAgICAgICAgfCAgIDIxICsrLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vbWFjL01haW5U
aHJlYWRNYWMubW0gICAgICAgICAgICAgIHwgICAzMyArKysrLS0tLS0tLQogV2ViQ29yZS9wbGF0
Zm9ybS9xdC9NYWluVGhyZWFkUXQuY3BwICAgICAgICAgICAgICAgfCAgIDM4ICsrLS0tLS0tLS0t
LQogV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAgICAgICAgICAgICAgfCAg
IDY0ICsrKy0tLS0tLS0tLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL3d4L01haW5UaHJlYWRX
eC5jcHAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIDExIGZpbGVzIGNoYW5nZWQsIDY0IGluc2Vy
dGlvbnMoKyksIDE4MiBkZWxldGlvbnMoLSkKIGNvcHkgV2ViQ29yZS9wbGF0Zm9ybS97d2luL01h
aW5UaHJlYWRXaW4uY3BwID0+IE1haW5UaHJlYWQuY3BwfSAoNjMlKQogY29weSBXZWJDb3JlL3Bs
YXRmb3JtL3t3eC9NYWluVGhyZWFkV3guY3BwID0+IE1haW5UaHJlYWRJbnRlcm5hbC5ofSAoODQl
KQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDAxYjUwNjEuLmM0NDAwNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtODU1LDYgKzg1NSw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJl
Z2lzdHJ5LmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmNwcCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgXAogCVdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzNTM2OGZkLi4zMDRlN2RmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTc5Miw2
ICs3OTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9LVVJMLmNwcCBcCiAgICAgcGxh
dGZvcm0vTG9nZ2luZy5jcHAgXAogICAgIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIFwK
KyAgICBwbGF0Zm9ybS9NYWluVGhyZWFkLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRl
bnRpYWwuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBjMDI2N2JjLi5lZTM5MmQ3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM1NTQsMTAgKzM1NTQsMTggQEAKIAkJ
CQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cTWFpblRocmVhZC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFkLmgiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFk
SW50ZXJuYWwuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXE1JTUVUeXBlUmVnaXN0cnkuY3BwIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsIGIvV2ViQ29yZS9X
ZWJDb3JlU291cmNlcy5ia2wKaW5kZXggZGNmZmNkYi4uOTA1ZWQ2NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlU291cmNlcy5ia2wKKysrIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wK
QEAgLTYxMCw2ICs2MTAsNyBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMg
bmVlZGVkIHRvIGJ1aWxkIFdlYkNvcmUuCiAgICAgICAgIHBsYXRmb3JtL0tVUkwuY3BwCiAgICAg
ICAgIHBsYXRmb3JtL0xvZ2dpbmcuY3BwCiAgICAgICAgIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuY3BwCisgICAgICAgIHBsYXRmb3JtL01haW5UaHJlYWQuY3BwCiAgICAgICAgIHBsYXRmb3Jt
L3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwCiAgICAgICAgIHBsYXRmb3JtL1Njcm9sbEJhci5j
cHAKICAgICAgICAgcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vTWFp
blRocmVhZC5jcHAKc2ltaWxhcml0eSBpbmRleCA2MyUKY29weSBmcm9tIFdlYkNvcmUvcGxhdGZv
cm0vd2luL01haW5UaHJlYWRXaW4uY3BwCmNvcHkgdG8gV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhy
ZWFkLmNwcAppbmRleCA2ZDM0OTNjLi4wZTQwNTY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJl
YWQuY3BwCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlIDx3aW5kb3dzLmg+
CisjaW5jbHVkZSAiTWFpblRocmVhZEludGVybmFsLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDEwICs0Myw3IEBAIHN0cnVjdCBGdW5j
dGlvbldpdGhDb250ZXh0IHsKIAogdHlwZWRlZiBWZWN0b3I8RnVuY3Rpb25XaXRoQ29udGV4dD4g
RnVuY3Rpb25RdWV1ZTsKIAotc3RhdGljIEhXTkQgdGhyZWFkaW5nV2luZG93SGFuZGxlID0gMDsK
LXN0YXRpYyBVSU5UIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSA9IDA7Ci1jb25zdCBMUENXU1RSIGtU
aHJlYWRpbmdXaW5kb3dDbGFzc05hbWUgPSBMIlRocmVhZGluZ1dpbmRvd0NsYXNzIjsKLXN0YXRp
YyBib29sIHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlID0gZmFsc2U7CitzdGF0aWMg
Ym9vbCBkaXNwYXRjaGluZ0NhbGxiYWNrczsKIAogc3RhdGljIE11dGV4JiBmdW5jdGlvblF1ZXVl
TXV0ZXgoKQogewpAQCAtNjAsNyArNTcsNyBAQCBzdGF0aWMgRnVuY3Rpb25RdWV1ZSYgZnVuY3Rp
b25RdWV1ZSgpCiAgICAgcmV0dXJuIHN0YXRpY0Z1bmN0aW9uUXVldWU7CiB9CiAKLXN0YXRpYyB2
b2lkIGNhbGxGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQordm9pZCBkaXNwYXRjaEZ1bmN0aW9uc0Zy
b21NYWluVGhyZWFkKCkKIHsKICAgICBGdW5jdGlvblF1ZXVlIHF1ZXVlQ29weTsKICAgICB7CkBA
IC02OCw1NiArNjUsMjYgQEAgc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uc09uTWFpblRocmVhZCgp
CiAgICAgICAgIHF1ZXVlQ29weS5zd2FwKGZ1bmN0aW9uUXVldWUoKSk7CiAgICAgfQogCisgICAg
ZGlzcGF0Y2hpbmdDYWxsYmFja3MgPSB0cnVlOwogICAgIExPRyhUaHJlYWRpbmcsICJDYWxsaW5n
ICV1IGZ1bmN0aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQiLCBxdWV1ZUNvcHkuc2l6ZSgpKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcXVldWVDb3B5LnNpemUoKTsgKytpKQogICAgICAg
ICBxdWV1ZUNvcHlbaV0uZnVuY3Rpb24ocXVldWVDb3B5W2ldLmNvbnRleHQpOworICAgIGRpc3Bh
dGNoaW5nQ2FsbGJhY2tzID0gZmFsc2U7CiB9CiAKLUxSRVNVTFQgQ0FMTEJBQ0sgVGhyZWFkaW5n
V2luZG93V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBB
UkFNIGxQYXJhbSkKLXsKLSAgICBpZiAobWVzc2FnZSA9PSB0aHJlYWRpbmdGaXJlZE1lc3NhZ2Up
IHsKLSAgICAgICAgcHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSB0cnVlOwotICAg
ICAgICBjYWxsRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7Ci0gICAgICAgIHByb2Nlc3NpbmdDdXN0
b21UaHJlYWRpbmdNZXNzYWdlID0gZmFsc2U7Ci0gICAgfSBlbHNlCi0gICAgICAgIHJldHVybiBE
ZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKLSAgICByZXR1cm4g
MDsKLX0KLQotdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nQW5kTWFpblRocmVhZCgpCi17Ci0gICAg
aWYgKHRocmVhZGluZ1dpbmRvd0hhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV1RGOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7Ci0KLSAgICBXTkRDTEFTU0VYIHdjZXg7Ci0gICAgbWVtc2V0
KCZ3Y2V4LCAwLCBzaXplb2YoV05EQ0xBU1NFWCkpOwotICAgIHdjZXguY2JTaXplID0gc2l6ZW9m
KFdORENMQVNTRVgpOwotICAgIHdjZXgubHBmblduZFByb2MgICAgPSBUaHJlYWRpbmdXaW5kb3dX
bmRQcm9jOwotICAgIHdjZXguaEluc3RhbmNlICAgICAgPSBQYWdlOjppbnN0YW5jZUhhbmRsZSgp
OwotICAgIHdjZXgubHBzekNsYXNzTmFtZSAgPSBrVGhyZWFkaW5nV2luZG93Q2xhc3NOYW1lOwot
ICAgIFJlZ2lzdGVyQ2xhc3NFeCgmd2NleCk7Ci0KLSAgICB0aHJlYWRpbmdXaW5kb3dIYW5kbGUg
PSBDcmVhdGVXaW5kb3coa1RocmVhZGluZ1dpbmRvd0NsYXNzTmFtZSwgMCwgMCwKLSAgICAgICBD
V19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLCBIV05EX01FU1NBR0UsIDAsIFBhZ2U6
Omluc3RhbmNlSGFuZGxlKCksIDApOwotICAgIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSA9IFJlZ2lz
dGVyV2luZG93TWVzc2FnZShMImNvbS5hcHBsZS5XZWJLaXQuTWFpblRocmVhZEZpcmVkIik7Ci19
Ci0gICAgCiB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlv
biwgdm9pZCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwotICAgIEFTU0VSVCh0
aHJlYWRpbmdXaW5kb3dIYW5kbGUpOwogCi0gICAgaWYgKHByb2Nlc3NpbmdDdXN0b21UaHJlYWRp
bmdNZXNzYWdlKQotICAgICAgICBMT0coVGhyZWFkaW5nLCAiY2FsbE9uTWFpblRocmVhZCgpIGNh
bGxlZCByZWN1cnNpdmVseS4gIEJld2FyZSBvZiBuZXN0ZWQgUG9zdE1lc3NhZ2UoKXMiKTsKKyAg
ICBpZiAoZGlzcGF0Y2hpbmdDYWxsYmFja3MpCisgICAgICAgIExPRyhUaHJlYWRpbmcsICJjYWxs
T25NYWluVGhyZWFkKCkgY2FsbGVkIHJlY3Vyc2l2ZWx5LiIpOwogCiAgICAgewogICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIoZnVuY3Rpb25RdWV1ZU11dGV4KCkpOwogICAgICAgICBmdW5jdGlv
blF1ZXVlKCkuYXBwZW5kKEZ1bmN0aW9uV2l0aENvbnRleHQoZnVuY3Rpb24sIGNvbnRleHQpKTsK
ICAgICB9CiAKLSAgICBQb3N0TWVzc2FnZSh0aHJlYWRpbmdXaW5kb3dIYW5kbGUsIHRocmVhZGlu
Z0ZpcmVkTWVzc2FnZSwgMCwgMCk7CisgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFp
blRocmVhZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3d4L01haW5UaHJlYWRXeC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5U
aHJlYWRJbnRlcm5hbC5oCnNpbWlsYXJpdHkgaW5kZXggODQlCmNvcHkgZnJvbSBXZWJDb3JlL3Bs
YXRmb3JtL3d4L01haW5UaHJlYWRXeC5jcHAKY29weSB0byBXZWJDb3JlL3BsYXRmb3JtL01haW5U
aHJlYWRJbnRlcm5hbC5oCmluZGV4IGI0OWNiNjIuLmY3MzBmNGUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vd3gvTWFpblRocmVhZFd4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL01h
aW5UaHJlYWRJbnRlcm5hbC5oCkBAIC0xLDE4ICsxLDE4IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA3IEtldmluIE9sbGl2aWVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCiAgKiBh
cmUgbWV0OgogICoKICAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCiAgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgogICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uIAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRApAQCAtMjYsMTUgKzI2LDE0IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIk1h
aW5UaHJlYWQuaCIKKyNpZm5kZWYgTWFpblRocmVhZEludGVybmFsX2gKKyNkZWZpbmUgTWFpblRo
cmVhZEludGVybmFsX2gKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIGNhbGxPbk1haW5U
aHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KKyAgICB2b2lkIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKKyAgICB2
b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsKIAotfQorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWFpblRocmVhZEludGVybmFsX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL01haW5UaHJlYWRHdGsuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvTWFpblRocmVhZEd0ay5jcHAKaW5kZXggZGIzYTU4My4uNGZhZGI5YSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTWFpblRocmVhZEd0ay5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvTWFpblRocmVhZEd0ay5jcHAKQEAgLTI4LDMyICsyOCwyMSBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNYWluVGhyZWFkLmgiCisjaW5j
bHVkZSAiTWFpblRocmVhZEludGVybmFsLmgiCiAKICNpbmNsdWRlIDxnbGliLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEZ1bmN0aW9uV2l0aENvbnRleHQgewotICAgIE1haW5U
aHJlYWRGdW5jdGlvbiogZnVuY3Rpb247Ci0gICAgdm9pZCogY29udGV4dDsKLX07Ci0KLXN0YXRp
YyBnYm9vbGVhbiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQoZ3BvaW50ZXIgZGF0YSkKK3N0YXRp
YyBnYm9vbGVhbiB0aW1lb3V0RmlyZWQoZ3BvaW50ZXIpCiB7Ci0gICAgRnVuY3Rpb25XaXRoQ29u
dGV4dCogZnVuY3Rpb25XaXRoQ29udGV4dCA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uV2l0aENvbnRl
eHQqPihkYXRhKTsKLSAgICBmdW5jdGlvbldpdGhDb250ZXh0LT5mdW5jdGlvbihmdW5jdGlvbldp
dGhDb250ZXh0LT5jb250ZXh0KTsKLSAgICBkZWxldGUgZnVuY3Rpb25XaXRoQ29udGV4dDsKKyAg
ICBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCk7CiAgICAgcmV0dXJuIEZBTFNFOwog
fQogCi12b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwg
dm9pZCogY29udGV4dCkKK3ZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVh
ZCgpCiB7Ci0gICAgQVNTRVJUKGZ1bmN0aW9uKTsKLSAgICBGdW5jdGlvbldpdGhDb250ZXh0KiBm
dW5jdGlvbldpdGhDb250ZXh0ID0gbmV3IEZ1bmN0aW9uV2l0aENvbnRleHQ7Ci0gICAgZnVuY3Rp
b25XaXRoQ29udGV4dC0+ZnVuY3Rpb24gPSBmdW5jdGlvbjsKLSAgICBmdW5jdGlvbldpdGhDb250
ZXh0LT5jb250ZXh0ID0gY29udGV4dDsKLSAgICBnX3RpbWVvdXRfYWRkKDAsIGNhbGxGdW5jdGlv
bk9uTWFpblRocmVhZCwgZnVuY3Rpb25XaXRoQ29udGV4dCk7CisgICAgZ190aW1lb3V0X2FkZCgw
LCB0aW1lb3V0RmlyZWQsIDApOwogfQogCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01haW5UaHJlYWRNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9NYWluVGhyZWFkTWFj
Lm1tCmluZGV4IDQ3MzI5ZWYuLjRiOGZlZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01haW5UaHJlYWRNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWFpblRocmVh
ZE1hYy5tbQpAQCAtMjcsNDAgKzI3LDI5IEBACiAgKi8KICAKICNpbXBvcnQgImNvbmZpZy5oIgot
I2ltcG9ydCAiTWFpblRocmVhZC5oIgorI2ltcG9ydCAiTWFpblRocmVhZEludGVybmFsLmgiCiAK
LUBpbnRlcmZhY2UgV2ViQ29yZUZ1bmN0aW9uV3JhcHBlciA6IE5TT2JqZWN0IHsKLSAgICBXZWJD
b3JlOjpNYWluVGhyZWFkRnVuY3Rpb24qIG1fZnVuY3Rpb247Ci0gICAgdm9pZCogbV9jb250ZXh0
OworQGludGVyZmFjZSBXZWJDb3JlTWFpblRocmVhZENhbGxlciA6IE5TT2JqZWN0IHsKIH0KLS0g
KGlkKWluaXRXaXRoRnVuY3Rpb246KFdlYkNvcmU6Ok1haW5UaHJlYWRGdW5jdGlvbiopZnVuY3Rp
b24gY29udGV4dDoodm9pZCopY29udGV4dDsKLS0gKHZvaWQpaW52b2tlOworLSAodm9pZCljYWxs
OwogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gV2ViQ29yZUZ1bmN0aW9uV3JhcHBlcgorQGltcGxl
bWVudGF0aW9uIFdlYkNvcmVNYWluVGhyZWFkQ2FsbGVyCiAKLS0gKGlkKWluaXRXaXRoRnVuY3Rp
b246KFdlYkNvcmU6Ok1haW5UaHJlYWRGdW5jdGlvbiopZnVuY3Rpb24gY29udGV4dDoodm9pZCop
Y29udGV4dDsKKy0gKHZvaWQpY2FsbAogewotICAgIFtzdXBlciBpbml0XTsKLSAgICBtX2Z1bmN0
aW9uID0gZnVuY3Rpb247Ci0gICAgbV9jb250ZXh0ID0gY29udGV4dDsKLSAgICByZXR1cm4gc2Vs
ZjsKKyAgICBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCk7CiB9CiAKLS0gKHZvaWQp
aW52b2tlCi17Ci0gICAgbV9mdW5jdGlvbihtX2NvbnRleHQpOwotfQotCi1AZW5kIC8vIGltcGxl
bWVudGF0aW9uIFdlYkNvcmVGdW5jdGlvbldyYXBwZXIKK0BlbmQgLy8gaW1wbGVtZW50YXRpb24g
V2ViQ29yZU1haW5UaHJlYWRDYWxsZXIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIGNh
bGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4
dCkKK3ZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCiB7Ci0gICAg
V2ViQ29yZUZ1bmN0aW9uV3JhcHBlciAqd3JhcHBlciA9IFtbV2ViQ29yZUZ1bmN0aW9uV3JhcHBl
ciBhbGxvY10gaW5pdFdpdGhGdW5jdGlvbjpmdW5jdGlvbiBjb250ZXh0OmNvbnRleHRdOwotICAg
IFt3cmFwcGVyIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3IoaW52b2tlKSB3
aXRoT2JqZWN0Om5pbCB3YWl0VW50aWxEb25lOk5PXTsKLSAgICBbd3JhcHBlciByZWxlYXNlXTsK
KyAgICBXZWJDb3JlTWFpblRocmVhZENhbGxlciAqY2FsbGVyID0gW1tXZWJDb3JlTWFpblRocmVh
ZENhbGxlciBhbGxvY10gaW5pdF07CisgICAgW2NhbGxlciBwZXJmb3JtU2VsZWN0b3JPbk1haW5U
aHJlYWQ6QHNlbGVjdG9yKGNhbGwpIHdpdGhPYmplY3Q6bmlsIHdhaXRVbnRpbERvbmU6Tk9dOwor
ICAgIFtjYWxsZXIgcmVsZWFzZV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvTWFpblRocmVhZFF0LmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvTWFpblRocmVhZFF0LmNwcAppbmRleCBhYjE5YmY3Li44MDFhOTA3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L01haW5UaHJlYWRRdC5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9NYWluVGhyZWFkUXQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJNYWlu
VGhyZWFkSW50ZXJuYWwuaCIKIAogI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgogI2luY2x1ZGUg
PFF0Q29yZS9RQ29yZUFwcGxpY2F0aW9uPgpAQCAtMzcsMTkgKzM3LDYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBQZXJmb3JtRnVuY3Rpb25FdmVudCA6IHB1YmxpYyBRRXZlbnQg
ewotcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBpbnQgRXZlbnRUeXBlID0gNzIzOwotCi0gICAg
UGVyZm9ybUZ1bmN0aW9uRXZlbnQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCogY29udGV4dCk7
Ci0KLSAgICB2b2lkIGludm9rZSgpOwotCi1wcml2YXRlOgotICAgIE1haW5UaHJlYWRGdW5jdGlv
biogbV9mdW5jdGlvbjsKLSAgICB2b2lkKiBtX2NvbnRleHQ7Ci19OwotCiBjbGFzcyBNYWluVGhy
ZWFkSW52b2tlciA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09CSkVDVAogcHVibGljOgpAQCAt
NTksMzcgKzQ2LDIyIEBAIHByb3RlY3RlZDoKICAgICBib29sIGV2ZW50KFFFdmVudCopOwogfTsK
IAotUGVyZm9ybUZ1bmN0aW9uRXZlbnQ6OlBlcmZvcm1GdW5jdGlvbkV2ZW50KE1haW5UaHJlYWRG
dW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCi0gICAgOiBRRXZlbnQoc3RhdGljX2Nh
c3Q8UUV2ZW50OjpUeXBlPihFdmVudFR5cGUpKQotICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikK
LSAgICAsIG1fY29udGV4dChjb250ZXh0KQotewotfQotCi12b2lkIFBlcmZvcm1GdW5jdGlvbkV2
ZW50OjppbnZva2UoKQotewotICAgIG1fZnVuY3Rpb24obV9jb250ZXh0KTsKLX0KLQogTWFpblRo
cmVhZEludm9rZXI6Ok1haW5UaHJlYWRJbnZva2VyKCkKIHsKICAgICBtb3ZlVG9UaHJlYWQoUUNv
cmVBcHBsaWNhdGlvbjo6aW5zdGFuY2UoKS0+dGhyZWFkKCkpOwogfQogCi1ib29sIE1haW5UaHJl
YWRJbnZva2VyOjpldmVudChRRXZlbnQqIGV2ZW50KQorYm9vbCBNYWluVGhyZWFkSW52b2tlcjo6
ZXZlbnQoUUV2ZW50KikKIHsKLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBQZXJmb3JtRnVuY3Rp
b25FdmVudDo6RXZlbnRUeXBlKQotICAgICAgICBzdGF0aWNfY2FzdDxQZXJmb3JtRnVuY3Rpb25F
dmVudCo+KGV2ZW50KS0+aW52b2tlKCk7Ci0KLSAgICByZXR1cm4gUU9iamVjdDo6ZXZlbnQoZXZl
bnQpOworICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKIH0KIAogUV9HTE9C
QUxfU1RBVElDKE1haW5UaHJlYWRJbnZva2VyLCB3ZWJraXRfbWFpbl90aHJlYWRfaW52b2tlcikK
IAogCi12b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwg
dm9pZCogY29udGV4dCkKK3ZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVh
ZCgpCiB7Ci0gICAgUUNvcmVBcHBsaWNhdGlvbjo6cG9zdEV2ZW50KHdlYmtpdF9tYWluX3RocmVh
ZF9pbnZva2VyKCksIG5ldyBQZXJmb3JtRnVuY3Rpb25FdmVudChmdW5jdGlvbiwgY29udGV4dCkp
OworICAgIFFDb3JlQXBwbGljYXRpb246OnBvc3RFdmVudCh3ZWJraXRfbWFpbl90aHJlYWRfaW52
b2tlcigpLCAwKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFp
blRocmVhZFdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcApp
bmRleCA2ZDM0OTNjLi4wNDZiMTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9N
YWluVGhyZWFkV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2lu
LmNwcApAQCAtMjcsNTkgKzI3LDIzIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJNYWluVGhyZWFkSW50ZXJuYWwuaCIKIAot
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d2luZG93
cy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdHJ1Y3QgRnVuY3Rpb25XaXRoQ29udGV4dCB7Ci0gICAgTWFpblRocmVhZEZ1bmN0aW9uKiBm
dW5jdGlvbjsKLSAgICB2b2lkKiBjb250ZXh0OwotICAgIEZ1bmN0aW9uV2l0aENvbnRleHQoTWFp
blRocmVhZEZ1bmN0aW9uKiBmID0gMCwgdm9pZCogYyA9IDApIDogZnVuY3Rpb24oZiksIGNvbnRl
eHQoYykgeyB9Ci19OwotCi10eXBlZGVmIFZlY3RvcjxGdW5jdGlvbldpdGhDb250ZXh0PiBGdW5j
dGlvblF1ZXVlOwotCi1zdGF0aWMgSFdORCB0aHJlYWRpbmdXaW5kb3dIYW5kbGUgPSAwOwotc3Rh
dGljIFVJTlQgdGhyZWFkaW5nRmlyZWRNZXNzYWdlID0gMDsKK3N0YXRpYyBIV05EIHRocmVhZGlu
Z1dpbmRvd0hhbmRsZTsKK3N0YXRpYyBVSU5UIHRocmVhZGluZ0ZpcmVkTWVzc2FnZTsKIGNvbnN0
IExQQ1dTVFIga1RocmVhZGluZ1dpbmRvd0NsYXNzTmFtZSA9IEwiVGhyZWFkaW5nV2luZG93Q2xh
c3MiOwotc3RhdGljIGJvb2wgcHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSBmYWxz
ZTsKLQotc3RhdGljIE11dGV4JiBmdW5jdGlvblF1ZXVlTXV0ZXgoKQotewotICAgIHN0YXRpYyBN
dXRleCBzdGF0aWNGdW5jdGlvblF1ZXVlTXV0ZXg7Ci0gICAgcmV0dXJuIHN0YXRpY0Z1bmN0aW9u
UXVldWVNdXRleDsKLX0KLQotc3RhdGljIEZ1bmN0aW9uUXVldWUmIGZ1bmN0aW9uUXVldWUoKQot
ewotICAgIHN0YXRpYyBGdW5jdGlvblF1ZXVlIHN0YXRpY0Z1bmN0aW9uUXVldWU7Ci0gICAgcmV0
dXJuIHN0YXRpY0Z1bmN0aW9uUXVldWU7Ci19Ci0KLXN0YXRpYyB2b2lkIGNhbGxGdW5jdGlvbnNP
bk1haW5UaHJlYWQoKQotewotICAgIEZ1bmN0aW9uUXVldWUgcXVldWVDb3B5OwotICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGZ1bmN0aW9uUXVldWVNdXRleCgpKTsKLSAgICAgICAg
cXVldWVDb3B5LnN3YXAoZnVuY3Rpb25RdWV1ZSgpKTsKLSAgICB9Ci0KLSAgICBMT0coVGhyZWFk
aW5nLCAiQ2FsbGluZyAldSBmdW5jdGlvbnMgb24gdGhlIG1haW4gdGhyZWFkIiwgcXVldWVDb3B5
LnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHF1ZXVlQ29weS5zaXplKCk7
ICsraSkKLSAgICAgICAgcXVldWVDb3B5W2ldLmZ1bmN0aW9uKHF1ZXVlQ29weVtpXS5jb250ZXh0
KTsKLX0KIAogTFJFU1VMVCBDQUxMQkFDSyBUaHJlYWRpbmdXaW5kb3dXbmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewotICAgIGlm
IChtZXNzYWdlID09IHRocmVhZGluZ0ZpcmVkTWVzc2FnZSkgewotICAgICAgICBwcm9jZXNzaW5n
Q3VzdG9tVGhyZWFkaW5nTWVzc2FnZSA9IHRydWU7Ci0gICAgICAgIGNhbGxGdW5jdGlvbnNPbk1h
aW5UaHJlYWQoKTsKLSAgICAgICAgcHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSBm
YWxzZTsKLSAgICB9IGVsc2UKKyAgICBpZiAobWVzc2FnZSA9PSB0aHJlYWRpbmdGaXJlZE1lc3Nh
Z2UpCisgICAgICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKKyAgICBlbHNl
CiAgICAgICAgIHJldHVybiBEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBh
cmFtKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTEwMywyMCArNjcsMTAgQEAgdm9pZCBpbml0aWFs
aXplVGhyZWFkaW5nQW5kTWFpblRocmVhZCgpCiAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1df
VVNFREVGQVVMVCwgMCwgSFdORF9NRVNTQUdFLCAwLCBQYWdlOjppbnN0YW5jZUhhbmRsZSgpLCAw
KTsKICAgICB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UgPSBSZWdpc3RlcldpbmRvd01lc3NhZ2UoTCJj
b20uYXBwbGUuV2ViS2l0Lk1haW5UaHJlYWRGaXJlZCIpOwogfQotICAgIAotdm9pZCBjYWxsT25N
YWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCisK
K3ZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCiB7Ci0gICAgQVNT
RVJUKGZ1bmN0aW9uKTsKICAgICBBU1NFUlQodGhyZWFkaW5nV2luZG93SGFuZGxlKTsKLQotICAg
IGlmIChwcm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5nTWVzc2FnZSkKLSAgICAgICAgTE9HKFRocmVh
ZGluZywgImNhbGxPbk1haW5UaHJlYWQoKSBjYWxsZWQgcmVjdXJzaXZlbHkuICBCZXdhcmUgb2Yg
bmVzdGVkIFBvc3RNZXNzYWdlKClzIik7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihmdW5jdGlvblF1ZXVlTXV0ZXgoKSk7Ci0gICAgICAgIGZ1bmN0aW9uUXVldWUoKS5hcHBl
bmQoRnVuY3Rpb25XaXRoQ29udGV4dChmdW5jdGlvbiwgY29udGV4dCkpOwotICAgIH0KLQogICAg
IFBvc3RNZXNzYWdlKHRocmVhZGluZ1dpbmRvd0hhbmRsZSwgdGhyZWFkaW5nRmlyZWRNZXNzYWdl
LCAwLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9NYWluVGhyZWFk
V3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9NYWluVGhyZWFkV3guY3BwCmluZGV4IGI0OWNi
NjIuLmQ0YWQ1NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTWFpblRocmVhZFd4
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L01haW5UaHJlYWRXeC5jcHAKQEAgLTI3LDEy
ICsyNywxMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNYWluVGhy
ZWFkSW50ZXJuYWwuaCIKKwogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAi
TWFpblRocmVhZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgY2FsbE9uTWFpblRo
cmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKikKK3ZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1
bmN0aW9uc09uTWFpblRocmVhZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLS0gCjEu
NS40LjQuNTM3LmdiNzVhYQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19744</attachid>
            <date>2008-03-13 14:56:14 -0700</date>
            <delta_ts>2010-06-10 16:31:46 -0700</delta_ts>
            <desc>Make most of callOnMainThread be cross-platform</desc>
            <filename>0001--Make-most-of-callOnMainThread-s-implementati.patch</filename>
            <type>text/plain</type>
            <size>26366</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAxZTg0OGYyMzhmM2IwY2E0YzcxZWFkZmVhYTFhMzk2NzkwYWI2MWM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDEzIE1hciAyMDA4IDE3OjU1OjAwIC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgTWFr
ZSBtb3N0IG9mIGNhbGxPbk1haW5UaHJlYWQncyBpbXBsZW1lbnRhdGlvbiBiZSBjcm9zcy1wbGF0
Zm9ybQoKICAgICAgICBJIHRvb2sgdGhlIG5vbi1wbGF0Zm9ybS1zcGVjaWZpYyBwYXJ0cyBvZiBN
YWluVGhyZWFkV2luLmNwcCBhbmQgbW92ZWQKICAgICAgICB0aGVtIHRvIGEgbmV3IE1haW5UaHJl
YWQuY3BwLiBFYWNoIHBsYXRmb3JtIGlzIG5vdyByZXNwb25zaWJsZSBmb3IKICAgICAgICBpbXBs
ZW1lbnRpbmcgb25lIGZ1bmN0aW9uLCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhy
ZWFkLAogICAgICAgIHdoaWNoIGlzIHN1cHBvc2VkIHRvIHNldCB0aGluZ3MgdXAgc28gdGhhdAog
ICAgICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQgZ2V0cyBjYWxsZWQgZnJvbSB0
aGUgbWFpbiB0aHJlYWQgaW4KICAgICAgICB0aGUgbmVhciBmdXR1cmUuCgogICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGRlZCBu
ZXcgZmlsZShzKSB0byB0aGUgcHJvamVjdC4KICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4K
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCiAgICAgICAgKiBXZWJD
b3JlU291cmNlcy5ia2w6IERpdHRvLgogICAgICAgICogcGxhdGZvcm0vTWFpblRocmVhZC5jcHA6
CiAgICAgICAgICAtIENvcGllZCBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRX
aW4uY3BwLgogICAgICAgICAgLSBSZW1vdmVkIHRoZSBXaW5kb3dzLXNwZWNpZmljIHBhcnRzLgog
ICAgICAgIChXZWJDb3JlOjpjYWxsT25NYWluVGhyZWFkKTogQ2hhbmdlZCB0byBjYWxsCiAgICAg
ICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCBpbnN0ZWFkIG9mIFBvc3RN
ZXNzYWdlLgogICAgICAgICogcGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmg6IEFkZGVkLiBD
b250YWlucyBkZWNsYXJhdGlvbnMgZm9yIHNvbWUKICAgICAgICBtZXRob2RzIHVzZWQgaW50ZXJu
YWxseSBieSB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAqIHBs
YXRmb3JtL2d0ay9NYWluVGhyZWFkR3RrLmNwcDoKICAgICAgICAoV2ViQ29yZTo6dGltZW91dEZp
cmVkKTogUmVuYW1lZCBmcm9tIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZC4gTm93CiAgICAgICAg
anVzdCBjYWxscyBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkLgogICAgICAgIChXZWJD
b3JlOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKTogQWRkZWQuIENhbGxz
IHRocm91Z2gKICAgICAgICB0byBnX3RpbWVvdXRfYWRkLgogICAgICAgICogcGxhdGZvcm0vbWFj
L01haW5UaHJlYWRNYWMubW06IFJlbmFtZWQgV2ViQ29yZUZ1bmN0aW9uV3JhcHBlciB0bwogICAg
ICAgIFdlYkNvcmVNYWluVGhyZWFkQ2FsbGVyLgogICAgICAgICgtW1dlYkNvcmVNYWluVGhyZWFk
Q2FsbGVyIGNhbGxdKTogQ2FsbHMgdGhyb3VnaCB0bwogICAgICAgIGRpc3BhdGNoRnVuY3Rpb25z
RnJvbU1haW5UaHJlYWQuCiAgICAgICAgKFdlYkNvcmU6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlv
bnNPbk1haW5UaHJlYWQpOiBNYWtlcyBhIG5ldwogICAgICAgIFdlYkNvcmVNYWluVGhyZWFkQ2Fs
bGVyIGFuZCBjYWxscyBwZXJmb3JtU2VsZWN0b3JPbk1haW5UaHJlYWQgb24gaXQuCiAgICAgICAg
KiBwbGF0Zm9ybS9xdC9NYWluVGhyZWFkUXQuY3BwOiBSZW1vdmVkIFBlcmZvcm1GdW5jdGlvbkV2
ZW50LgogICAgICAgIChXZWJDb3JlOjpNYWluVGhyZWFkSW52b2tlcjo6ZXZlbnQpOiBDaGFnbmVk
IHRvIGNhbGwgdGhyb3VnaCB0bwogICAgICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJl
YWQuCiAgICAgICAgKFdlYkNvcmU6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJl
YWQpOiBTZW5kcyBhbiBlbXB0eSBldmVudAogICAgICAgIHRvIHRoZSBNYWluVGhyZWFkSW52b2tl
ci4KICAgICAgICAqIHBsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKICAgICAgICAgIC0g
UmVtb3ZlZCB0aGUgbm9uLVdpbmRvd3Mtc3BlY2lmaWMgcGFydHMuCiAgICAgICAgICAtIFJlbW92
ZWQgc29tZSB1bm5lY2Vzc2FyeSBpbml0aWFsaXphdGlvbiBvZiBzdGF0aWMgdmFyaWFibGVzIHRv
IDAuCiAgICAgICAgKFdlYkNvcmU6OlRocmVhZGluZ1dpbmRvd1duZFByb2MpOiBDaGFuZ2VkIHRv
IGNhbGwKICAgICAgICBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkLgogICAgICAgIChX
ZWJDb3JlOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKTogQ2FsbHMgdGhy
b3VnaCB0bwogICAgICAgIFBvc3RNZXNzYWdlLgogICAgICAgICogcGxhdGZvcm0vd3gvTWFpblRo
cmVhZFd4LmNwcDoKICAgICAgICAoV2ViQ29yZTo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09u
TWFpblRocmVhZCk6IEFkZGVkLgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICA1MSArKysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9X
ZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwgICAgOCArKysK
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAg
OCArKysKIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMSArCiAuLi4ve3dpbi9NYWluVGhyZWFkV2luLmNwcCA9PiBNYWluVGhyZWFkLmNwcH0g
ICAgICB8ICAgNTEgKysrLS0tLS0tLS0tLS0tLQogLi4uL3t3eC9NYWluVGhyZWFkV3guY3BwID0+
IE1haW5UaHJlYWRJbnRlcm5hbC5ofSAgfCAgIDIzICsrKystLS0tCiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9NYWluVGhyZWFkR3RrLmNwcCAgICAgICAgICAgICB8ICAgMjEgKystLS0tLQogV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWFpblRocmVhZE1hYy5tbSAgICAgICAgICAgICAgfCAgIDMzICsrKyst
LS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL3F0L01haW5UaHJlYWRRdC5jcHAgICAgICAgICAgICAg
ICB8ICAgMzggKystLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9NYWluVGhyZWFkV2lu
LmNwcCAgICAgICAgICAgICB8ICAgNjQgKysrLS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvcGxh
dGZvcm0vd3gvTWFpblRocmVhZFd4LmNwcCAgICAgICAgICAgICAgIHwgICAgNSArLQogMTMgZmls
ZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDE4MiBkZWxldGlvbnMoLSkKIGNvcHkgV2Vi
Q29yZS9wbGF0Zm9ybS97d2luL01haW5UaHJlYWRXaW4uY3BwID0+IE1haW5UaHJlYWQuY3BwfSAo
NjMlKQogY29weSBXZWJDb3JlL3BsYXRmb3JtL3t3eC9NYWluVGhyZWFkV3guY3BwID0+IE1haW5U
aHJlYWRJbnRlcm5hbC5ofSAoODQlKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU5YThjNy4uMjU2ODRjZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1NiBAQAog
MjAwOC0wMy0xMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFr
ZSBtb3N0IG9mIGNhbGxPbk1haW5UaHJlYWQncyBpbXBsZW1lbnRhdGlvbiBiZSBjcm9zcy1wbGF0
Zm9ybQorCisgICAgICAgIEkgdG9vayB0aGUgbm9uLXBsYXRmb3JtLXNwZWNpZmljIHBhcnRzIG9m
IE1haW5UaHJlYWRXaW4uY3BwIGFuZCBtb3ZlZAorICAgICAgICB0aGVtIHRvIGEgbmV3IE1haW5U
aHJlYWQuY3BwLiBFYWNoIHBsYXRmb3JtIGlzIG5vdyByZXNwb25zaWJsZSBmb3IKKyAgICAgICAg
aW1wbGVtZW50aW5nIG9uZSBmdW5jdGlvbiwgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFp
blRocmVhZCwKKyAgICAgICAgd2hpY2ggaXMgc3VwcG9zZWQgdG8gc2V0IHRoaW5ncyB1cCBzbyB0
aGF0CisgICAgICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQgZ2V0cyBjYWxsZWQg
ZnJvbSB0aGUgbWFpbiB0aHJlYWQgaW4KKyAgICAgICAgdGhlIG5lYXIgZnV0dXJlLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
YW06IEFkZGVkIG5ldyBmaWxlKHMpIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUu
cHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlU291cmNlcy5ia2w6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L01haW5UaHJlYWQuY3BwOgorICAgICAgICAgIC0gQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9y
bS93aW4vTWFpblRocmVhZFdpbi5jcHAuCisgICAgICAgICAgLSBSZW1vdmVkIHRoZSBXaW5kb3dz
LXNwZWNpZmljIHBhcnRzLgorICAgICAgICAoV2ViQ29yZTo6Y2FsbE9uTWFpblRocmVhZCk6IENo
YW5nZWQgdG8gY2FsbAorICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhy
ZWFkIGluc3RlYWQgb2YgUG9zdE1lc3NhZ2UuCisgICAgICAgICogcGxhdGZvcm0vTWFpblRocmVh
ZEludGVybmFsLmg6IEFkZGVkLiBDb250YWlucyBkZWNsYXJhdGlvbnMgZm9yIHNvbWUKKyAgICAg
ICAgbWV0aG9kcyB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVt
ZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL01haW5UaHJlYWRHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dGltZW91dEZpcmVkKTogUmVuYW1lZCBmcm9tIGNhbGxGdW5jdGlvbk9u
TWFpblRocmVhZC4gTm93CisgICAgICAgIGp1c3QgY2FsbHMgZGlzcGF0Y2hGdW5jdGlvbnNGcm9t
TWFpblRocmVhZC4KKyAgICAgICAgKFdlYkNvcmU6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNP
bk1haW5UaHJlYWQpOiBBZGRlZC4gQ2FsbHMgdGhyb3VnaAorICAgICAgICB0byBnX3RpbWVvdXRf
YWRkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NYWluVGhyZWFkTWFjLm1tOiBSZW5hbWVkIFdl
YkNvcmVGdW5jdGlvbldyYXBwZXIgdG8KKyAgICAgICAgV2ViQ29yZU1haW5UaHJlYWRDYWxsZXIu
CisgICAgICAgICgtW1dlYkNvcmVNYWluVGhyZWFkQ2FsbGVyIGNhbGxdKTogQ2FsbHMgdGhyb3Vn
aCB0bworICAgICAgICBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkLgorICAgICAgICAo
V2ViQ29yZTo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6IE1ha2VzIGEg
bmV3CisgICAgICAgIFdlYkNvcmVNYWluVGhyZWFkQ2FsbGVyIGFuZCBjYWxscyBwZXJmb3JtU2Vs
ZWN0b3JPbk1haW5UaHJlYWQgb24gaXQuCisgICAgICAgICogcGxhdGZvcm0vcXQvTWFpblRocmVh
ZFF0LmNwcDogUmVtb3ZlZCBQZXJmb3JtRnVuY3Rpb25FdmVudC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1haW5UaHJlYWRJbnZva2VyOjpldmVudCk6IENoYWduZWQgdG8gY2FsbCB0aHJvdWdoIHRvCisg
ICAgICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQuCisgICAgICAgIChXZWJDb3Jl
OjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKTogU2VuZHMgYW4gZW1wdHkg
ZXZlbnQKKyAgICAgICAgdG8gdGhlIE1haW5UaHJlYWRJbnZva2VyLgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgICAtIFJlbW92ZWQgdGhlIG5vbi1X
aW5kb3dzLXNwZWNpZmljIHBhcnRzLgorICAgICAgICAgIC0gUmVtb3ZlZCBzb21lIHVubmVjZXNz
YXJ5IGluaXRpYWxpemF0aW9uIG9mIHN0YXRpYyB2YXJpYWJsZXMgdG8gMC4KKyAgICAgICAgKFdl
YkNvcmU6OlRocmVhZGluZ1dpbmRvd1duZFByb2MpOiBDaGFuZ2VkIHRvIGNhbGwKKyAgICAgICAg
ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZC4KKyAgICAgICAgKFdlYkNvcmU6OnNjaGVk
dWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQpOiBDYWxscyB0aHJvdWdoIHRvCisgICAg
ICAgIFBvc3RNZXNzYWdlLgorICAgICAgICAqIHBsYXRmb3JtL3d4L01haW5UaHJlYWRXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KTogQWRkZWQuCisKKzIwMDgtMDMtMTMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgor
CiAgICAgICAgIHd4IGJ1aWxkIGZpeCBhbmQgV2luZG93cyBsZWFrIGZpeCBhZnRlciByMzEwMzQK
IAogICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwOgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
MDFiNTA2MS4uYzQ0MDA2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC04NTUsNiArODU1LDcgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L0xvZ2dpbmcuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIFwK
KwlXZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0NyZWRlbnRpYWwuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9y
bURhdGEuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDM1MzY4ZmQuLjMwNGU3ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNzkyLDYgKzc5Miw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0tVUkwuY3BwIFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5n
LmNwcCBcCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgXAorICAgIHBsYXRmb3Jt
L01haW5UaHJlYWQuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5jcHAgXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDM5MDNhNTQuLmE1NDNmNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtMzY2MCwxMCArMzY2MCwxOCBAQAogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFk
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXE1haW5UaHJlYWQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXE1haW5UaHJlYWRJbnRlcm5hbC5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cTUlNRVR5cGVSZWdpc3RyeS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MmVhZTA4Li4yNTE3OWI1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzMyLDYg
KzMzMiw4IEBACiAJCTFDQjQyMTRDMEFGMkIyQ0EwMDg1QUQ5MSAvKiBET01IVE1MRWxlbWVudElu
dGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUU3MTE1ODBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEVsZW1lbnRJ
bnRlcm5hbC5oICovOyB9OwogCQkxQ0I0MjE0RDBBRjJCMkNBMDA4NUFEOTEgLyogRE9NUmFuZ2VJ
bnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUzOEYwNUEwQUQ3MjJGMTAwNkE4MUQxIC8qIERPTVJhbmdlSW50ZXJu
YWwuaCAqLzsgfTsKIAkJMUNFMjRGOTcwRDdDQUYwRTAwN0UwNEMyIC8qIFNjaGVkdWxlUGFpck1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRTI0
Rjk2MEQ3Q0FGMEUwMDdFMDRDMiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gKi87IH07CisJCTFDRTNG
OEI0MEQ4OUNGREMwMEZCMDM1RiAvKiBNYWluVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRTNGOEIzMEQ4OUNGREMwMEZCMDM1RiAvKiBN
YWluVGhyZWFkLmNwcCAqLzsgfTsKKwkJMUNFM0Y4QjgwRDg5Q0ZFQzAwRkIwMzVGIC8qIE1haW5U
aHJlYWRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNFM0Y4QjcwRDg5Q0ZFQzAwRkIwMzVGIC8qIE1haW5UaHJlYWRJbnRlcm5hbC5oICov
OyB9OwogCQkxQ0U4M0FDMzBBREFGRkQ3MDA5MzU0RjYgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzRD
OEVGRjBBRDg1RDg3MDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAgKi87IH07
CiAJCTFDRTgzQUM0MEFEQUZGRDgwMDkzNTRGNiAvKiBEZWxldGVCdXR0b24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM0QzhGNjMwQUQ4NjU1RDAw
OTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbi5jcHAgKi87IH07CiAJCTFDRUZDOUI5MEQ3OERDOEMwMDdE
MjU3OSAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDRUZDOUI3MEQ3OERDOEMwMDdEMjU3OSAvKiBTY2hlZHVsZVBhaXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDY3Myw2
ICs0Njc1LDggQEAKIAkJMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTYwQkE5Qzg0NjAwRjkwMTQ3IC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNFMjRGOTYwRDdDQUYwRTAwN0UwNEMy
IC8qIFNjaGVkdWxlUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNjaGVkdWxlUGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNFM0Y4QjMwRDg5Q0ZEQzAwRkIwMzVGIC8qIE1haW5UaHJlYWQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWFpblRocmVhZC5jcHA7IHBhdGggPSBtYWMvTWFpblRo
cmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRTNGOEI3MEQ4OUNGRUMw
MEZCMDM1RiAvKiBNYWluVGhyZWFkSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTWFpblRocmVhZEludGVybmFsLmg7IHBhdGggPSBtYWMvTWFpblRocmVhZEludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUZDOUI3MEQ3OERDOEMwMDdE
MjU3OSAvKiBTY2hlZHVsZVBhaXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NoZWR1bGVQYWlyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUZDOUI4MEQ3
OERDOEMwMDdEMjU3OSAvKiBTY2hlZHVsZVBhaXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2NoZWR1bGVQYWlyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJvYmpjLmR5
bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMTIwMDcsNyArMTIwMTEsOSBA
QAogCQkJCTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8s
CiAJCQkJQTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLAogCQkJCUE4
MjM5REZGMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmggKi8sCisJCQkJMUNFM0Y4QjMwRDg5
Q0ZEQzAwRkIwMzVGIC8qIE1haW5UaHJlYWQuY3BwICovLAogCQkJCUUxRUU3OTM2MEQ2Qzk3REUw
MEZFQTNCQSAvKiBNYWluVGhyZWFkLmggKi8sCisJCQkJMUNFM0Y4QjcwRDg5Q0ZFQzAwRkIwMzVG
IC8qIE1haW5UaHJlYWRJbnRlcm5hbC5oICovLAogCQkJCUJDNzcyQzRDMEM0RUIzMDQwMDgzMjg1
RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQlCQzc3MkM0RDBDNEVCMzA0MDA4MzI4
NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5oICovLAogCQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3
RiAvKiBQYXN0ZWJvYXJkLmggKi8sCkBAIC0xNDU0Miw2ICsxNDU0OCw3IEBACiAJCQkJQTlEMjQ4
MDEwRDc1N0U2OTAwRkRGOTU5IC8qIEpTUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU01pbWVUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOUQyNDgwOTBENzU3RTdEMDBGREY5NTkgLyogSlNNaW1lVHlwZUFycmF5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQ0UzRjhCODBEODlDRkVDMDBGQjAzNUYgLyogTWFpblRocmVhZEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE2MTc4LDYgKzE2MTg1LDcgQEAKIAkJCQlBOUQyNDgw
MDBENzU3RTY5MDBGREY5NTkgLyogSlNQbHVnaW5BcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOUQyNDgwNjBENzU3RTdEMDBGREY5NTkgLyogSlNNaW1lVHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOUQyNDgwODBENzU3RTdEMDBGREY5NTkgLyogSlNNaW1lVHlwZUFycmF5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDRTNGOEI0MEQ4OUNGREMwMEZCMDM1RiAvKiBNYWluVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5i
a2wgYi9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAppbmRleCBkY2ZmY2RiLi45MDVlZDY2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAorKysgYi9XZWJDb3JlL1dlYkNv
cmVTb3VyY2VzLmJrbApAQCAtNjEwLDYgKzYxMCw3IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUg
bGlzdCBvZiBmaWxlcyBuZWVkZWQgdG8gYnVpbGQgV2ViQ29yZS4KICAgICAgICAgcGxhdGZvcm0v
S1VSTC5jcHAKICAgICAgICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICAgICAgcGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5jcHAKKyAgICAgICAgcGxhdGZvcm0vTWFpblRocmVhZC5jcHAKICAg
ICAgICAgcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKICAgICAgICAgcGxhdGZv
cm0vU2Nyb2xsQmFyLmNwcAogICAgICAgICBwbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmNwcApzaW1pbGFyaXR5IGluZGV4IDYzJQpjb3B5IGZyb20g
V2ViQ29yZS9wbGF0Zm9ybS93aW4vTWFpblRocmVhZFdpbi5jcHAKY29weSB0byBXZWJDb3JlL3Bs
YXRmb3JtL01haW5UaHJlYWQuY3BwCmluZGV4IDZkMzQ5M2MuLjBlNDA1NjQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vTWFpblRocmVhZC5jcHAKQEAgLTMwLDggKzMwLDggQEAKICNpbmNsdWRlICJNYWluVGhy
ZWFkLmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlICJNYWluVGhyZWFkSW50ZXJuYWwuaCIKKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsMTAgKzQzLDcg
QEAgc3RydWN0IEZ1bmN0aW9uV2l0aENvbnRleHQgewogCiB0eXBlZGVmIFZlY3RvcjxGdW5jdGlv
bldpdGhDb250ZXh0PiBGdW5jdGlvblF1ZXVlOwogCi1zdGF0aWMgSFdORCB0aHJlYWRpbmdXaW5k
b3dIYW5kbGUgPSAwOwotc3RhdGljIFVJTlQgdGhyZWFkaW5nRmlyZWRNZXNzYWdlID0gMDsKLWNv
bnN0IExQQ1dTVFIga1RocmVhZGluZ1dpbmRvd0NsYXNzTmFtZSA9IEwiVGhyZWFkaW5nV2luZG93
Q2xhc3MiOwotc3RhdGljIGJvb2wgcHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSBm
YWxzZTsKK3N0YXRpYyBib29sIGRpc3BhdGNoaW5nQ2FsbGJhY2tzOwogCiBzdGF0aWMgTXV0ZXgm
IGZ1bmN0aW9uUXVldWVNdXRleCgpCiB7CkBAIC02MCw3ICs1Nyw3IEBAIHN0YXRpYyBGdW5jdGlv
blF1ZXVlJiBmdW5jdGlvblF1ZXVlKCkKICAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZTsK
IH0KIAotc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lkIGRpc3Bh
dGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKQogewogICAgIEZ1bmN0aW9uUXVldWUgcXVldWVD
b3B5OwogICAgIHsKQEAgLTY4LDU2ICs2NSwyNiBAQCBzdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25z
T25NYWluVGhyZWFkKCkKICAgICAgICAgcXVldWVDb3B5LnN3YXAoZnVuY3Rpb25RdWV1ZSgpKTsK
ICAgICB9CiAKKyAgICBkaXNwYXRjaGluZ0NhbGxiYWNrcyA9IHRydWU7CiAgICAgTE9HKFRocmVh
ZGluZywgIkNhbGxpbmcgJXUgZnVuY3Rpb25zIG9uIHRoZSBtYWluIHRocmVhZCIsIHF1ZXVlQ29w
eS5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBxdWV1ZUNvcHkuc2l6ZSgp
OyArK2kpCiAgICAgICAgIHF1ZXVlQ29weVtpXS5mdW5jdGlvbihxdWV1ZUNvcHlbaV0uY29udGV4
dCk7CisgICAgZGlzcGF0Y2hpbmdDYWxsYmFja3MgPSBmYWxzZTsKIH0KIAotTFJFU1VMVCBDQUxM
QkFDSyBUaHJlYWRpbmdXaW5kb3dXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFS
QU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIGlmIChtZXNzYWdlID09IHRocmVhZGlu
Z0ZpcmVkTWVzc2FnZSkgewotICAgICAgICBwcm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5nTWVzc2Fn
ZSA9IHRydWU7Ci0gICAgICAgIGNhbGxGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsKLSAgICAgICAg
cHJvY2Vzc2luZ0N1c3RvbVRocmVhZGluZ01lc3NhZ2UgPSBmYWxzZTsKLSAgICB9IGVsc2UKLSAg
ICAgICAgcmV0dXJuIERlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0p
OwotICAgIHJldHVybiAwOwotfQotCi12b2lkIGluaXRpYWxpemVUaHJlYWRpbmdBbmRNYWluVGhy
ZWFkKCkKLXsKLSAgICBpZiAodGhyZWFkaW5nV2luZG93SGFuZGxlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKLQotICAgIFdORENMQVNTRVggd2Nl
eDsKLSAgICBtZW1zZXQoJndjZXgsIDAsIHNpemVvZihXTkRDTEFTU0VYKSk7Ci0gICAgd2NleC5j
YlNpemUgPSBzaXplb2YoV05EQ0xBU1NFWCk7Ci0gICAgd2NleC5scGZuV25kUHJvYyAgICA9IFRo
cmVhZGluZ1dpbmRvd1duZFByb2M7Ci0gICAgd2NleC5oSW5zdGFuY2UgICAgICA9IFBhZ2U6Omlu
c3RhbmNlSGFuZGxlKCk7Ci0gICAgd2NleC5scHN6Q2xhc3NOYW1lICA9IGtUaHJlYWRpbmdXaW5k
b3dDbGFzc05hbWU7Ci0gICAgUmVnaXN0ZXJDbGFzc0V4KCZ3Y2V4KTsKLQotICAgIHRocmVhZGlu
Z1dpbmRvd0hhbmRsZSA9IENyZWF0ZVdpbmRvdyhrVGhyZWFkaW5nV2luZG93Q2xhc3NOYW1lLCAw
LCAwLAotICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsIEhXTkRfTUVT
U0FHRSwgMCwgUGFnZTo6aW5zdGFuY2VIYW5kbGUoKSwgMCk7Ci0gICAgdGhyZWFkaW5nRmlyZWRN
ZXNzYWdlID0gUmVnaXN0ZXJXaW5kb3dNZXNzYWdlKEwiY29tLmFwcGxlLldlYktpdC5NYWluVGhy
ZWFkRmlyZWQiKTsKLX0KLSAgICAKIHZvaWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVu
Y3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQogewogICAgIEFTU0VSVChmdW5jdGlvbik7
Ci0gICAgQVNTRVJUKHRocmVhZGluZ1dpbmRvd0hhbmRsZSk7CiAKLSAgICBpZiAocHJvY2Vzc2lu
Z0N1c3RvbVRocmVhZGluZ01lc3NhZ2UpCi0gICAgICAgIExPRyhUaHJlYWRpbmcsICJjYWxsT25N
YWluVGhyZWFkKCkgY2FsbGVkIHJlY3Vyc2l2ZWx5LiAgQmV3YXJlIG9mIG5lc3RlZCBQb3N0TWVz
c2FnZSgpcyIpOworICAgIGlmIChkaXNwYXRjaGluZ0NhbGxiYWNrcykKKyAgICAgICAgTE9HKFRo
cmVhZGluZywgImNhbGxPbk1haW5UaHJlYWQoKSBjYWxsZWQgcmVjdXJzaXZlbHkuIik7CiAKICAg
ICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihmdW5jdGlvblF1ZXVlTXV0ZXgoKSk7CiAg
ICAgICAgIGZ1bmN0aW9uUXVldWUoKS5hcHBlbmQoRnVuY3Rpb25XaXRoQ29udGV4dChmdW5jdGlv
biwgY29udGV4dCkpOwogICAgIH0KIAotICAgIFBvc3RNZXNzYWdlKHRocmVhZGluZ1dpbmRvd0hh
bmRsZSwgdGhyZWFkaW5nRmlyZWRNZXNzYWdlLCAwLCAwKTsKKyAgICBzY2hlZHVsZURpc3BhdGNo
RnVuY3Rpb25zT25NYWluVGhyZWFkKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTWFpblRocmVhZFd4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmgKc2ltaWxhcml0eSBpbmRleCA4NCUKY29weSBm
cm9tIFdlYkNvcmUvcGxhdGZvcm0vd3gvTWFpblRocmVhZFd4LmNwcApjb3B5IHRvIFdlYkNvcmUv
cGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmgKaW5kZXggYjQ5Y2I2Mi4uZjczMGY0ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9NYWluVGhyZWFkV3guY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vTWFpblRocmVhZEludGVybmFsLmgKQEAgLTEsMTggKzEsMTggQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4gT2xsaXZpZXIKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKICAqIGFyZSBtZXQ6CiAgKgogICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4gCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCiAgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0yNiwxNSArMjYsMTQgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
Ci0jaW5jbHVkZSAiTWFpblRocmVhZC5oIgorI2lmbmRlZiBNYWluVGhyZWFkSW50ZXJuYWxfaAor
I2RlZmluZSBNYWluVGhyZWFkSW50ZXJuYWxfaAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZv
aWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQorICAgIHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRo
cmVhZCgpOworICAgIHZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgp
OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNYWluVGhyZWFkSW50
ZXJuYWxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTWFpblRocmVhZEd0ay5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9NYWluVGhyZWFkR3RrLmNwcAppbmRleCBkYjNhNTgz
Li40ZmFkYjlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9NYWluVGhyZWFkR3Rr
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9NYWluVGhyZWFkR3RrLmNwcApAQCAtMjgs
MzIgKzI4LDIxIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1haW5U
aHJlYWQuaCIKKyNpbmNsdWRlICJNYWluVGhyZWFkSW50ZXJuYWwuaCIKIAogI2luY2x1ZGUgPGds
aWIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgRnVuY3Rpb25XaXRoQ29udGV4
dCB7Ci0gICAgTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbjsKLSAgICB2b2lkKiBjb250ZXh0
OwotfTsKLQotc3RhdGljIGdib29sZWFuIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZChncG9pbnRl
ciBkYXRhKQorc3RhdGljIGdib29sZWFuIHRpbWVvdXRGaXJlZChncG9pbnRlcikKIHsKLSAgICBG
dW5jdGlvbldpdGhDb250ZXh0KiBmdW5jdGlvbldpdGhDb250ZXh0ID0gc3RhdGljX2Nhc3Q8RnVu
Y3Rpb25XaXRoQ29udGV4dCo+KGRhdGEpOwotICAgIGZ1bmN0aW9uV2l0aENvbnRleHQtPmZ1bmN0
aW9uKGZ1bmN0aW9uV2l0aENvbnRleHQtPmNvbnRleHQpOwotICAgIGRlbGV0ZSBmdW5jdGlvbldp
dGhDb250ZXh0OworICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKICAgICBy
ZXR1cm4gRkFMU0U7CiB9CiAKLXZvaWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rp
b24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rp
b25zT25NYWluVGhyZWFkKCkKIHsKLSAgICBBU1NFUlQoZnVuY3Rpb24pOwotICAgIEZ1bmN0aW9u
V2l0aENvbnRleHQqIGZ1bmN0aW9uV2l0aENvbnRleHQgPSBuZXcgRnVuY3Rpb25XaXRoQ29udGV4
dDsKLSAgICBmdW5jdGlvbldpdGhDb250ZXh0LT5mdW5jdGlvbiA9IGZ1bmN0aW9uOwotICAgIGZ1
bmN0aW9uV2l0aENvbnRleHQtPmNvbnRleHQgPSBjb250ZXh0OwotICAgIGdfdGltZW91dF9hZGQo
MCwgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkLCBmdW5jdGlvbldpdGhDb250ZXh0KTsKKyAgICBn
X3RpbWVvdXRfYWRkKDAsIHRpbWVvdXRGaXJlZCwgMCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L01haW5UaHJlYWRNYWMubW0KaW5kZXggNDczMjllZi4uNGI4ZmVmNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0yNyw0MCArMjcsMjkgQEAKICAqLwogIAogI2ltcG9y
dCAiY29uZmlnLmgiCi0jaW1wb3J0ICJNYWluVGhyZWFkLmgiCisjaW1wb3J0ICJNYWluVGhyZWFk
SW50ZXJuYWwuaCIKIAotQGludGVyZmFjZSBXZWJDb3JlRnVuY3Rpb25XcmFwcGVyIDogTlNPYmpl
Y3QgewotICAgIFdlYkNvcmU6Ok1haW5UaHJlYWRGdW5jdGlvbiogbV9mdW5jdGlvbjsKLSAgICB2
b2lkKiBtX2NvbnRleHQ7CitAaW50ZXJmYWNlIFdlYkNvcmVNYWluVGhyZWFkQ2FsbGVyIDogTlNP
YmplY3QgewogfQotLSAoaWQpaW5pdFdpdGhGdW5jdGlvbjooV2ViQ29yZTo6TWFpblRocmVhZEZ1
bmN0aW9uKilmdW5jdGlvbiBjb250ZXh0Oih2b2lkKiljb250ZXh0OwotLSAodm9pZClpbnZva2U7
CistICh2b2lkKWNhbGw7CiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlRnVuY3Rpb25X
cmFwcGVyCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZU1haW5UaHJlYWRDYWxsZXIKIAotLSAoaWQp
aW5pdFdpdGhGdW5jdGlvbjooV2ViQ29yZTo6TWFpblRocmVhZEZ1bmN0aW9uKilmdW5jdGlvbiBj
b250ZXh0Oih2b2lkKiljb250ZXh0OworLSAodm9pZCljYWxsCiB7Ci0gICAgW3N1cGVyIGluaXRd
OwotICAgIG1fZnVuY3Rpb24gPSBmdW5jdGlvbjsKLSAgICBtX2NvbnRleHQgPSBjb250ZXh0Owot
ICAgIHJldHVybiBzZWxmOworICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsK
IH0KIAotLSAodm9pZClpbnZva2UKLXsKLSAgICBtX2Z1bmN0aW9uKG1fY29udGV4dCk7Ci19Ci0K
LUBlbmQgLy8gaW1wbGVtZW50YXRpb24gV2ViQ29yZUZ1bmN0aW9uV3JhcHBlcgorQGVuZCAvLyBp
bXBsZW1lbnRhdGlvbiBXZWJDb3JlTWFpblRocmVhZENhbGxlcgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXZvaWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9u
LCB2b2lkKiBjb250ZXh0KQordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhy
ZWFkKCkKIHsKLSAgICBXZWJDb3JlRnVuY3Rpb25XcmFwcGVyICp3cmFwcGVyID0gW1tXZWJDb3Jl
RnVuY3Rpb25XcmFwcGVyIGFsbG9jXSBpbml0V2l0aEZ1bmN0aW9uOmZ1bmN0aW9uIGNvbnRleHQ6
Y29udGV4dF07Ci0gICAgW3dyYXBwZXIgcGVyZm9ybVNlbGVjdG9yT25NYWluVGhyZWFkOkBzZWxl
Y3RvcihpbnZva2UpIHdpdGhPYmplY3Q6bmlsIHdhaXRVbnRpbERvbmU6Tk9dOwotICAgIFt3cmFw
cGVyIHJlbGVhc2VdOworICAgIFdlYkNvcmVNYWluVGhyZWFkQ2FsbGVyICpjYWxsZXIgPSBbW1dl
YkNvcmVNYWluVGhyZWFkQ2FsbGVyIGFsbG9jXSBpbml0XTsKKyAgICBbY2FsbGVyIHBlcmZvcm1T
ZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3IoY2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVu
dGlsRG9uZTpOT107CisgICAgW2NhbGxlciByZWxlYXNlXTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9NYWluVGhyZWFkUXQuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9NYWluVGhyZWFkUXQuY3BwCmluZGV4IGFiMTliZjcuLjgw
MWE5MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvTWFpblRocmVhZFF0LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L01haW5UaHJlYWRRdC5jcHAKQEAgLTI5LDcgKzI5LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTWFpblRocmVhZC5oIgor
I2luY2x1ZGUgIk1haW5UaHJlYWRJbnRlcm5hbC5oIgogCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmpl
Y3Q+CiAjaW5jbHVkZSA8UXRDb3JlL1FDb3JlQXBwbGljYXRpb24+CkBAIC0zNywxOSArMzcsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBlcmZvcm1GdW5jdGlvbkV2ZW50IDog
cHVibGljIFFFdmVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IGludCBFdmVudFR5cGUg
PSA3MjM7Ci0KLSAgICBQZXJmb3JtRnVuY3Rpb25FdmVudChNYWluVGhyZWFkRnVuY3Rpb24qLCB2
b2lkKiBjb250ZXh0KTsKLQotICAgIHZvaWQgaW52b2tlKCk7Ci0KLXByaXZhdGU6Ci0gICAgTWFp
blRocmVhZEZ1bmN0aW9uKiBtX2Z1bmN0aW9uOwotICAgIHZvaWQqIG1fY29udGV4dDsKLX07Ci0K
IGNsYXNzIE1haW5UaHJlYWRJbnZva2VyIDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNU
CiBwdWJsaWM6CkBAIC01OSwzNyArNDYsMjIgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgZXZlbnQo
UUV2ZW50Kik7CiB9OwogCi1QZXJmb3JtRnVuY3Rpb25FdmVudDo6UGVyZm9ybUZ1bmN0aW9uRXZl
bnQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkKLSAgICA6IFFF
dmVudChzdGF0aWNfY2FzdDxRRXZlbnQ6OlR5cGU+KEV2ZW50VHlwZSkpCi0gICAgLCBtX2Z1bmN0
aW9uKGZ1bmN0aW9uKQotICAgICwgbV9jb250ZXh0KGNvbnRleHQpCi17Ci19Ci0KLXZvaWQgUGVy
Zm9ybUZ1bmN0aW9uRXZlbnQ6Omludm9rZSgpCi17Ci0gICAgbV9mdW5jdGlvbihtX2NvbnRleHQp
OwotfQotCiBNYWluVGhyZWFkSW52b2tlcjo6TWFpblRocmVhZEludm9rZXIoKQogewogICAgIG1v
dmVUb1RocmVhZChRQ29yZUFwcGxpY2F0aW9uOjppbnN0YW5jZSgpLT50aHJlYWQoKSk7CiB9CiAK
LWJvb2wgTWFpblRocmVhZEludm9rZXI6OmV2ZW50KFFFdmVudCogZXZlbnQpCitib29sIE1haW5U
aHJlYWRJbnZva2VyOjpldmVudChRRXZlbnQqKQogewotICAgIGlmIChldmVudC0+dHlwZSgpID09
IFBlcmZvcm1GdW5jdGlvbkV2ZW50OjpFdmVudFR5cGUpCi0gICAgICAgIHN0YXRpY19jYXN0PFBl
cmZvcm1GdW5jdGlvbkV2ZW50Kj4oZXZlbnQpLT5pbnZva2UoKTsKLQotICAgIHJldHVybiBRT2Jq
ZWN0OjpldmVudChldmVudCk7CisgICAgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgp
OwogfQogCiBRX0dMT0JBTF9TVEFUSUMoTWFpblRocmVhZEludm9rZXIsIHdlYmtpdF9tYWluX3Ro
cmVhZF9pbnZva2VyKQogCiAKLXZvaWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rp
b24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rp
b25zT25NYWluVGhyZWFkKCkKIHsKLSAgICBRQ29yZUFwcGxpY2F0aW9uOjpwb3N0RXZlbnQod2Vi
a2l0X21haW5fdGhyZWFkX2ludm9rZXIoKSwgbmV3IFBlcmZvcm1GdW5jdGlvbkV2ZW50KGZ1bmN0
aW9uLCBjb250ZXh0KSk7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6cG9zdEV2ZW50KHdlYmtpdF9t
YWluX3RocmVhZF9pbnZva2VyKCksIDApOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9NYWluVGhyZWFkV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL01haW5U
aHJlYWRXaW4uY3BwCmluZGV4IDZkMzQ5M2MuLjA0NmIxODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vd2luL01haW5UaHJlYWRXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L01haW5UaHJlYWRXaW4uY3BwCkBAIC0yNyw1OSArMjcsMjMgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiTWFpblRocmVhZC5oIgorI2luY2x1ZGUgIk1haW5UaHJlYWRJ
bnRlcm5hbC5oIgogCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBGdW5jdGlvbldpdGhDb250ZXh0IHsKLSAgICBNYWluVGhy
ZWFkRnVuY3Rpb24qIGZ1bmN0aW9uOwotICAgIHZvaWQqIGNvbnRleHQ7Ci0gICAgRnVuY3Rpb25X
aXRoQ29udGV4dChNYWluVGhyZWFkRnVuY3Rpb24qIGYgPSAwLCB2b2lkKiBjID0gMCkgOiBmdW5j
dGlvbihmKSwgY29udGV4dChjKSB7IH0KLX07Ci0KLXR5cGVkZWYgVmVjdG9yPEZ1bmN0aW9uV2l0
aENvbnRleHQ+IEZ1bmN0aW9uUXVldWU7Ci0KLXN0YXRpYyBIV05EIHRocmVhZGluZ1dpbmRvd0hh
bmRsZSA9IDA7Ci1zdGF0aWMgVUlOVCB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UgPSAwOworc3RhdGlj
IEhXTkQgdGhyZWFkaW5nV2luZG93SGFuZGxlOworc3RhdGljIFVJTlQgdGhyZWFkaW5nRmlyZWRN
ZXNzYWdlOwogY29uc3QgTFBDV1NUUiBrVGhyZWFkaW5nV2luZG93Q2xhc3NOYW1lID0gTCJUaHJl
YWRpbmdXaW5kb3dDbGFzcyI7Ci1zdGF0aWMgYm9vbCBwcm9jZXNzaW5nQ3VzdG9tVGhyZWFkaW5n
TWVzc2FnZSA9IGZhbHNlOwotCi1zdGF0aWMgTXV0ZXgmIGZ1bmN0aW9uUXVldWVNdXRleCgpCi17
Ci0gICAgc3RhdGljIE11dGV4IHN0YXRpY0Z1bmN0aW9uUXVldWVNdXRleDsKLSAgICByZXR1cm4g
c3RhdGljRnVuY3Rpb25RdWV1ZU11dGV4OwotfQotCi1zdGF0aWMgRnVuY3Rpb25RdWV1ZSYgZnVu
Y3Rpb25RdWV1ZSgpCi17Ci0gICAgc3RhdGljIEZ1bmN0aW9uUXVldWUgc3RhdGljRnVuY3Rpb25R
dWV1ZTsKLSAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZTsKLX0KLQotc3RhdGljIHZvaWQg
Y2FsbEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCi17Ci0gICAgRnVuY3Rpb25RdWV1ZSBxdWV1ZUNv
cHk7Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoZnVuY3Rpb25RdWV1ZU11dGV4
KCkpOwotICAgICAgICBxdWV1ZUNvcHkuc3dhcChmdW5jdGlvblF1ZXVlKCkpOwotICAgIH0KLQot
ICAgIExPRyhUaHJlYWRpbmcsICJDYWxsaW5nICV1IGZ1bmN0aW9ucyBvbiB0aGUgbWFpbiB0aHJl
YWQiLCBxdWV1ZUNvcHkuc2l6ZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcXVl
dWVDb3B5LnNpemUoKTsgKytpKQotICAgICAgICBxdWV1ZUNvcHlbaV0uZnVuY3Rpb24ocXVldWVD
b3B5W2ldLmNvbnRleHQpOwotfQogCiBMUkVTVUxUIENBTExCQUNLIFRocmVhZGluZ1dpbmRvd1du
ZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFy
YW0pCiB7Ci0gICAgaWYgKG1lc3NhZ2UgPT0gdGhyZWFkaW5nRmlyZWRNZXNzYWdlKSB7Ci0gICAg
ICAgIHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlID0gdHJ1ZTsKLSAgICAgICAgY2Fs
bEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOwotICAgICAgICBwcm9jZXNzaW5nQ3VzdG9tVGhyZWFk
aW5nTWVzc2FnZSA9IGZhbHNlOwotICAgIH0gZWxzZQorICAgIGlmIChtZXNzYWdlID09IHRocmVh
ZGluZ0ZpcmVkTWVzc2FnZSkKKyAgICAgICAgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVh
ZCgpOworICAgIGVsc2UKICAgICAgICAgcmV0dXJuIERlZldpbmRvd1Byb2MoaFduZCwgbWVzc2Fn
ZSwgd1BhcmFtLCBsUGFyYW0pOwogICAgIHJldHVybiAwOwogfQpAQCAtMTAzLDIwICs2NywxMCBA
QCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmdBbmRNYWluVGhyZWFkKCkKICAgICAgICBDV19VU0VE
RUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLCBIV05EX01FU1NBR0UsIDAsIFBhZ2U6Omluc3Rh
bmNlSGFuZGxlKCksIDApOwogICAgIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSA9IFJlZ2lzdGVyV2lu
ZG93TWVzc2FnZShMImNvbS5hcHBsZS5XZWJLaXQuTWFpblRocmVhZEZpcmVkIik7CiB9Ci0gICAg
Ci12b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9p
ZCogY29udGV4dCkKKwordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KCkKIHsKLSAgICBBU1NFUlQoZnVuY3Rpb24pOwogICAgIEFTU0VSVCh0aHJlYWRpbmdXaW5kb3dI
YW5kbGUpOwotCi0gICAgaWYgKHByb2Nlc3NpbmdDdXN0b21UaHJlYWRpbmdNZXNzYWdlKQotICAg
ICAgICBMT0coVGhyZWFkaW5nLCAiY2FsbE9uTWFpblRocmVhZCgpIGNhbGxlZCByZWN1cnNpdmVs
eS4gIEJld2FyZSBvZiBuZXN0ZWQgUG9zdE1lc3NhZ2UoKXMiKTsKLQotICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKGZ1bmN0aW9uUXVldWVNdXRleCgpKTsKLSAgICAgICAgZnVuY3Rp
b25RdWV1ZSgpLmFwcGVuZChGdW5jdGlvbldpdGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7
Ci0gICAgfQotCiAgICAgUG9zdE1lc3NhZ2UodGhyZWFkaW5nV2luZG93SGFuZGxlLCB0aHJlYWRp
bmdGaXJlZE1lc3NhZ2UsIDAsIDApOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3d4L01haW5UaHJlYWRXeC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L01haW5UaHJlYWRXeC5j
cHAKaW5kZXggYjQ5Y2I2Mi4uZDRhZDU3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93
eC9NYWluVGhyZWFkV3guY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvTWFpblRocmVhZFd4
LmNwcApAQCAtMjcsMTIgKzI3LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1haW5UaHJlYWRJbnRlcm5hbC5oIgorCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKLSNpbmNsdWRlICJNYWluVGhyZWFkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiosIHZvaWQqKQordm9pZCBzY2hl
ZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQotLSAKMS41LjQuNC41MzcuZ2I3NWFhCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19768</attachid>
            <date>2008-03-14 12:28:24 -0700</date>
            <delta_ts>2008-03-15 20:55:14 -0700</delta_ts>
            <desc>[1/2] Make PausedTimeouts be internal to JSDOMWindowBase</desc>
            <filename>0001--Make-JSDOMWindowBase-hold-onto-its-PausedTim.patch</filename>
            <type>text/plain</type>
            <size>12451</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAzN2JhMTJhMTFmNzhjZDUyMGQ0Nzg4OTEzMGQyYmRjOTkyYWM3ZjgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDE0IE1hciAyMDA4IDE1OjI0OjI2IC0wNDAwClN1YmplY3Q6IFtQRlIgMS8yXSAgICAgICAg
IE1ha2UgSlNET01XaW5kb3dCYXNlIGhvbGQgb250byBpdHMgUGF1c2VkVGltZW91dHMKCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICogYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcDoKICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlUHJpdmF0
ZTo6SlNET01XaW5kb3dCYXNlUHJpdmF0ZSk6IEluaXRpYWxpemUKICAgICAgICBuZXcgbWVtYmVy
LgogICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Omluc3RhbGxUaW1lb3V0KTogQWRk
ZWQgYW4gYXNzZXJ0aW9uIHRoYXQKICAgICAgICB0aW1lb3V0cyBhcmUgbm90IHBhdXNlZC4KICAg
ICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzZXRUaW1lb3V0c1BhdXNlZCk6IEFkZGVk
LiBUaGlzIGlzIHRoZSBuZXcKICAgICAgICBwdWJsaWMgbWV0aG9kIGJ5IHdoaWNoIHRpbWVvdXRz
IG1heSBiZSBwYXVzZWQvcmVzdW1lZC4KICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNl
OjpwYXVzZVRpbWVvdXRzKTogQ2hhbmdlZCB0byBzZXQgdGhlCiAgICAgICAgbV9wYXVzZWRUaW1l
b3V0cyBtZW1iZXIgaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlIFBhdXNlZFRpbWVvdXRzCiAgICAg
ICAgcG9pbnRlci4KICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpyZXN1bWVUaW1l
b3V0cyk6IENoYW5nZWQgdG8gZ2V0IHRoZQogICAgICAgIFBhdXNlZFRpbWVvdXRzIGZyb20gbV9w
YXVzZWRUaW1lb3V0cyBpbnN0ZWFkIG9mIGZyb20gYSBwYXJhbWV0ZXIuCiAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDogTWFkZSBwYXVzZVRpbWVvdXRzL3Jlc3VtZVRpbWVv
dXRzCiAgICAgICAgcHJpdmF0ZS4KICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5jcHA6CiAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OkNhY2hlZFBhZ2UpOiBDaGFuZ2VkIHRvIGNhbGwg
c2V0VGltZW91dHNQYXVzZWQuCiAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OnJlc3RvcmUp
OiBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6Y2xlYXIpOiBSZW1vdmVkIHJl
ZmVyZW5jZSB0byBtX3BhdXNlZFRpbWVvdXRzCiAgICAgICAgbWVtYmVyLgogICAgICAgICogaGlz
dG9yeS9DYWNoZWRQYWdlLmg6IFJlbW92ZWQgbV9wYXVzZWRUaW1lb3V0cyBtZW1iZXIuCiAgICAg
ICAgKiBwYWdlL0Nocm9tZS5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZl
cnJlcjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKTogQ2hhbmdlZCB0bwogICAgICAgIGNhbGwgc2V0
VGltZW91dHNQYXVzZWQgaW5zdGVhZCBvZiBzdG9yaW5nIFBhdXNlZFRpbWVvdXRzIGluIGEgVmVj
dG9yLgogICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBM
b2FkRGVmZXJyZXIpOiBDaGFuZ2VkIHRvCiAgICAgICAgY2FsbCBzZXRUaW1lb3V0c1BhdXNlZCBp
bnN0ZWFkIG9mIHJlc3VtZVRpbWVvdXRzIHVzaW5nIHRoZSBzdG9yZWQKICAgICAgICBQYXVzZWRU
aW1lb3V0cy4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcCB8ICAgMzYgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oICAgfCAgICA2ICsrLS0KIFdlYkNv
cmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcCAgICAgICAgICB8ICAgIDYgKy0tLQogV2ViQ29yZS9o
aXN0b3J5L0NhY2hlZFBhZ2UuaCAgICAgICAgICAgIHwgICAgMiAtCiBXZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCAgICAgICAgICAgICAgICAgfCAgIDI5ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLQog
NiBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc4ZWEy
ZTguLmY0ZWRkYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMDgtMDMtMTQgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSlNET01XaW5kb3dCYXNlIGhvbGQgb250byBp
dHMgUGF1c2VkVGltZW91dHMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2VQcml2YXRlOjpKU0RPTVdpbmRvd0Jhc2VQcml2YXRlKTog
SW5pdGlhbGl6ZQorICAgICAgICBuZXcgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3dCYXNlOjppbnN0YWxsVGltZW91dCk6IEFkZGVkIGFuIGFzc2VydGlvbiB0aGF0CisgICAg
ICAgIHRpbWVvdXRzIGFyZSBub3QgcGF1c2VkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3dCYXNlOjpzZXRUaW1lb3V0c1BhdXNlZCk6IEFkZGVkLiBUaGlzIGlzIHRoZSBuZXcKKyAgICAg
ICAgcHVibGljIG1ldGhvZCBieSB3aGljaCB0aW1lb3V0cyBtYXkgYmUgcGF1c2VkL3Jlc3VtZWQu
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnBhdXNlVGltZW91dHMpOiBDaGFu
Z2VkIHRvIHNldCB0aGUKKyAgICAgICAgbV9wYXVzZWRUaW1lb3V0cyBtZW1iZXIgaW5zdGVhZCBv
ZiByZXR1cm5pbmcgdGhlIFBhdXNlZFRpbWVvdXRzCisgICAgICAgIHBvaW50ZXIuCisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnJlc3VtZVRpbWVvdXRzKTogQ2hhbmdlZCB0byBn
ZXQgdGhlCisgICAgICAgIFBhdXNlZFRpbWVvdXRzIGZyb20gbV9wYXVzZWRUaW1lb3V0cyBpbnN0
ZWFkIG9mIGZyb20gYSBwYXJhbWV0ZXIuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmg6IE1hZGUgcGF1c2VUaW1lb3V0cy9yZXN1bWVUaW1lb3V0cworICAgICAgICBwcml2
YXRlLgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRQYWdlOjpDYWNoZWRQYWdlKTogQ2hhbmdlZCB0byBjYWxsIHNldFRpbWVvdXRzUGF1
c2VkLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6cmVzdG9yZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6Y2xlYXIpOiBSZW1vdmVkIHJlZmVyZW5jZSB0byBt
X3BhdXNlZFRpbWVvdXRzCisgICAgICAgIG1lbWJlci4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hl
ZFBhZ2UuaDogUmVtb3ZlZCBtX3BhdXNlZFRpbWVvdXRzIG1lbWJlci4KKyAgICAgICAgKiBwYWdl
L0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBh
Z2VHcm91cExvYWREZWZlcnJlcik6IENoYW5nZWQgdG8KKyAgICAgICAgY2FsbCBzZXRUaW1lb3V0
c1BhdXNlZCBpbnN0ZWFkIG9mIHN0b3JpbmcgUGF1c2VkVGltZW91dHMgaW4gYSBWZWN0b3IuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIpOiBDaGFuZ2VkIHRvCisgICAgICAgIGNhbGwgc2V0VGltZW91dHNQYXVzZWQgaW5zdGVh
ZCBvZiByZXN1bWVUaW1lb3V0cyB1c2luZyB0aGUgc3RvcmVkCisgICAgICAgIFBhdXNlZFRpbWVv
dXRzLgorCiAyMDA4LTAzLTE0ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcAppbmRleCBhNGNmNTExLi4xNjNhNjhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHN0cnVjdCBKU0RPTVdpbmRvd0Jhc2VQcml2
YXRlIHsKICAgICAgICAgOiBsb2MoMCkKICAgICAgICAgLCBtX2V2dCgwKQogICAgICAgICAsIG1f
cmV0dXJuVmFsdWVTbG90KDApCisgICAgICAgICwgbV9hcmVUaW1lb3V0c1BhdXNlZChmYWxzZSkK
ICAgICB7CiAgICAgfQogCkBAIC0xMDAsNiArMTAxLDggQEAgc3RydWN0IEpTRE9NV2luZG93QmFz
ZVByaXZhdGUgewogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGludCwgRE9NV2luZG93VGltZXIqPiBU
aW1lb3V0c01hcDsKICAgICBUaW1lb3V0c01hcCBtX3RpbWVvdXRzOworICAgIE93blB0cjxQYXVz
ZWRUaW1lb3V0cyo+IG1fcGF1c2VkVGltZW91dHM7CisgICAgYm9vbCBtX2FyZVRpbWVvdXRzUGF1
c2VkOwogfTsKIAogY2xhc3MgRE9NV2luZG93VGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKQEAg
LTEyOTIsNiArMTI5NSw4IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpjbGVhckFsbFRpbWVvdXRz
KCkKIAogaW50IEpTRE9NV2luZG93QmFzZTo6aW5zdGFsbFRpbWVvdXQoU2NoZWR1bGVkQWN0aW9u
KiBhLCBpbnQgdCwgYm9vbCBzaW5nbGVTaG90KQogeworICAgIEFTU0VSVCghZC0+bV9hcmVUaW1l
b3V0c1BhdXNlZCk7CisKICAgICBpbnQgdGltZW91dElkID0gKytsYXN0VXNlZFRpbWVvdXRJZDsK
IAogICAgIC8vIGF2b2lkIHdyYXBhcm91bmQgZ29pbmcgbmVnYXRpdmUgb24gdXMKQEAgLTEzMjUs
MTEgKzEzMzAsMjQgQEAgaW50IEpTRE9NV2luZG93QmFzZTo6aW5zdGFsbFRpbWVvdXQoSlNWYWx1
ZSogZnVuYywgY29uc3QgTGlzdCYgYXJncywgaW50IHQsIGJvb2wKICAgICByZXR1cm4gaW5zdGFs
bFRpbWVvdXQobmV3IFNjaGVkdWxlZEFjdGlvbihmdW5jLCBhcmdzKSwgdCwgc2luZ2xlU2hvdCk7
CiB9CiAKLVBhdXNlZFRpbWVvdXRzKiBKU0RPTVdpbmRvd0Jhc2U6OnBhdXNlVGltZW91dHMoKQor
dm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnNldFRpbWVvdXRzUGF1c2VkKGJvb2wgcGF1c2VkKQorewor
ICAgIGlmIChkLT5tX2FyZVRpbWVvdXRzUGF1c2VkID09IHBhdXNlZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZC0+bV9hcmVUaW1lb3V0c1BhdXNlZCA9IHBhdXNlZDsKKworICAgIGlmIChkLT5t
X2FyZVRpbWVvdXRzUGF1c2VkKQorICAgICAgICBwYXVzZVRpbWVvdXRzKCk7CisgICAgZWxzZQor
ICAgICAgICByZXN1bWVUaW1lb3V0cygpOworfQorCit2b2lkIEpTRE9NV2luZG93QmFzZTo6cGF1
c2VUaW1lb3V0cygpCiB7CiAgICAgc2l6ZV90IGNvdW50ID0gZC0+bV90aW1lb3V0cy5zaXplKCk7
Ci0gICAgaWYgKGNvdW50ID09IDApCi0gICAgICAgIHJldHVybiAwOworICAgIGlmICghY291bnQp
CisgICAgICAgIHJldHVybjsKIAogICAgIFBhdXNlZFRpbWVvdXQqIHQgPSBuZXcgUGF1c2VkVGlt
ZW91dCBbY291bnRdOwogICAgIFBhdXNlZFRpbWVvdXRzKiByZXN1bHQgPSBuZXcgUGF1c2VkVGlt
ZW91dHModCwgY291bnQpOwpAQCAtMTM0OSwyMiArMTM2NywyMiBAQCBQYXVzZWRUaW1lb3V0cyog
SlNET01XaW5kb3dCYXNlOjpwYXVzZVRpbWVvdXRzKCkKICAgICBkZWxldGVBbGxWYWx1ZXMoZC0+
bV90aW1lb3V0cyk7CiAgICAgZC0+bV90aW1lb3V0cy5jbGVhcigpOwogCi0gICAgcmV0dXJuIHJl
c3VsdDsKKyAgICBkLT5tX3BhdXNlZFRpbWVvdXRzLnNldChyZXN1bHQpOwogfQogCi12b2lkIEpT
RE9NV2luZG93QmFzZTo6cmVzdW1lVGltZW91dHMoUGF1c2VkVGltZW91dHMqIHRpbWVvdXRzKQor
dm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnJlc3VtZVRpbWVvdXRzKCkKIHsKLSAgICBpZiAoIXRpbWVv
dXRzKQorICAgIGlmICghZC0+bV9wYXVzZWRUaW1lb3V0cykKICAgICAgICAgcmV0dXJuOwotICAg
IHNpemVfdCBjb3VudCA9IHRpbWVvdXRzLT5udW1UaW1lb3V0cygpOwotICAgIFBhdXNlZFRpbWVv
dXQqIGFycmF5ID0gdGltZW91dHMtPnRha2VUaW1lb3V0cygpOworICAgIHNpemVfdCBjb3VudCA9
IGQtPm1fcGF1c2VkVGltZW91dHMtPm51bVRpbWVvdXRzKCk7CisgICAgUGF1c2VkVGltZW91dCog
YXJyYXkgPSBkLT5tX3BhdXNlZFRpbWVvdXRzLT50YWtlVGltZW91dHMoKTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSAhPSBjb3VudDsgKytpKSB7CiAgICAgICAgIGludCB0aW1lb3V0SWQgPSBh
cnJheVtpXS50aW1lb3V0SWQ7CiAgICAgICAgIERPTVdpbmRvd1RpbWVyKiB0aW1lciA9IG5ldyBE
T01XaW5kb3dUaW1lcih0aW1lb3V0SWQsIGFycmF5W2ldLm5lc3RpbmdMZXZlbCwgdGhpcywgYXJy
YXlbaV0uYWN0aW9uKTsKICAgICAgICAgZC0+bV90aW1lb3V0cy5zZXQodGltZW91dElkLCB0aW1l
cik7CiAgICAgICAgIHRpbWVyLT5zdGFydChhcnJheVtpXS5uZXh0RmlyZUludGVydmFsLCBhcnJh
eVtpXS5yZXBlYXRJbnRlcnZhbCk7CiAgICAgfQotICAgIGRlbGV0ZSBbXSBhcnJheTsKKyAgICBk
LT5tX3BhdXNlZFRpbWVvdXRzLmNsZWFyKCk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dCYXNlOjpj
bGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCwgYm9vbCBkZWxBY3Rpb24pCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA2YzFkMDZjLi45MTMzZTA2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIEpTRXZlbnRMaXN0ZW5lcjsKICAgICBjbGFzcyBKU0xvY2F0aW9uOwog
ICAgIGNsYXNzIEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOwotICAgIGNsYXNzIFBhdXNlZFRp
bWVvdXRzOwogICAgIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKIAogICAgIGNsYXNzIEpTRE9NV2lu
ZG93QmFzZVByaXZhdGU7CkBAIC02Niw4ICs2NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgaW50IGluc3RhbGxUaW1lb3V0KGNvbnN0IEtKUzo6VVN0cmluZyYgaGFuZGxlciwgaW50
IHQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgICAgIGludCBpbnN0YWxsVGltZW91dChLSlM6OkpT
VmFsdWUqIGZ1bmN0aW9uLCBjb25zdCBLSlM6Okxpc3QmIGFyZ3MsIGludCB0LCBib29sIHNpbmds
ZVNob3QpOwogICAgICAgICB2b2lkIGNsZWFyVGltZW91dChpbnQgdGltZXJJZCwgYm9vbCBkZWxB
Y3Rpb24gPSB0cnVlKTsKLSAgICAgICAgUGF1c2VkVGltZW91dHMqIHBhdXNlVGltZW91dHMoKTsK
LSAgICAgICAgdm9pZCByZXN1bWVUaW1lb3V0cyhQYXVzZWRUaW1lb3V0cyopOworICAgICAgICB2
b2lkIHNldFRpbWVvdXRzUGF1c2VkKGJvb2wpOwogCiAgICAgICAgIHZvaWQgdGltZXJGaXJlZChE
T01XaW5kb3dUaW1lciopOwogCkBAIC0xNDcsNiArMTQ1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGNsZWFySGVscGVyT2JqZWN0UHJvcGVydGllcygpOwogICAgICAgICB2
b2lkIGNsZWFyQWxsVGltZW91dHMoKTsKICAgICAgICAgaW50IGluc3RhbGxUaW1lb3V0KFNjaGVk
dWxlZEFjdGlvbiosIGludCBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICAgICAgdm9p
ZCBwYXVzZVRpbWVvdXRzKCk7CisgICAgICAgIHZvaWQgcmVzdW1lVGltZW91dHMoKTsKIAogICAg
ICAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21Qcml2YXRlKGNvbnN0IEtKUzo6SlNHbG9iYWxPYmpl
Y3QqLCBTZWN1cml0eU9yaWdpbjo6UmVhc29uJikgY29uc3Q7CiAgICAgICAgIGJvb2wgYWxsb3dz
QWNjZXNzRnJvbVByaXZhdGUoY29uc3QgS0pTOjpFeGVjU3RhdGUqLCBTZWN1cml0eU9yaWdpbjo6
UmVhc29uJikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5j
cHAgYi9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKaW5kZXggZDJlMDJhMy4uNzAxYTFk
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCisrKyBiL1dlYkNv
cmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkpT
TG9jYXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2lu
Y2x1ZGUgIlBhdXNlZFRpbWVvdXRzLmgiCiAjaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1
ZGUgImtqc19wcm94eS5oIgogI2luY2x1ZGUgPGtqcy9KU0xvY2suaD4KQEAgLTEwNiw3ICsxMDUs
NyBAQCBDYWNoZWRQYWdlOjpDYWNoZWRQYWdlKFBhZ2UqIHBhZ2UpCiAgICAgICAgIHdpbmRvdy0+
c2F2ZVByb3BlcnRpZXMoKm1fd2luZG93UHJvcGVydGllcy5nZXQoKSk7CiAgICAgICAgIHdpbmRv
dy0+c2F2ZUxvY2FsU3RvcmFnZSgqbV93aW5kb3dMb2NhbFN0b3JhZ2UuZ2V0KCkpOwogICAgICAg
ICB3aW5kb3ctPmxvY2F0aW9uKCktPnNhdmVQcm9wZXJ0aWVzKCptX2xvY2F0aW9uUHJvcGVydGll
cy5nZXQoKSk7Ci0gICAgICAgIG1fcGF1c2VkVGltZW91dHMuc2V0KHdpbmRvdy0+cGF1c2VUaW1l
b3V0cygpKTsKKyAgICAgICAgd2luZG93LT5zZXRUaW1lb3V0c1BhdXNlZCh0cnVlKTsKICAgICB9
CiAKICAgICBtX2RvY3VtZW50LT5zZXRJblBhZ2VDYWNoZSh0cnVlKTsKQEAgLTE0MCw3ICsxMzks
NyBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSogcGFnZSkKICAgICAgICAgd2luZG93
LT5yZXN0b3JlUHJvcGVydGllcygqbV93aW5kb3dQcm9wZXJ0aWVzLmdldCgpKTsKICAgICAgICAg
d2luZG93LT5yZXN0b3JlTG9jYWxTdG9yYWdlKCptX3dpbmRvd0xvY2FsU3RvcmFnZS5nZXQoKSk7
CiAgICAgICAgIHdpbmRvdy0+bG9jYXRpb24oKS0+cmVzdG9yZVByb3BlcnRpZXMoKm1fbG9jYXRp
b25Qcm9wZXJ0aWVzLmdldCgpKTsKLSAgICAgICAgd2luZG93LT5yZXN1bWVUaW1lb3V0cyhtX3Bh
dXNlZFRpbWVvdXRzLmdldCgpKTsKKyAgICAgICAgd2luZG93LT5zZXRUaW1lb3V0c1BhdXNlZChm
YWxzZSk7CiAgICAgfQogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTE5NSw3ICsxOTQsNiBAQCB2b2lk
IENhY2hlZFBhZ2U6OmNsZWFyKCkKICAgICBtX3dpbmRvd1Byb3BlcnRpZXMuY2xlYXIoKTsKICAg
ICBtX2xvY2F0aW9uUHJvcGVydGllcy5jbGVhcigpOwogICAgIG1fd2luZG93QnVpbHRpbnMuY2xl
YXIoKTsKLSAgICBtX3BhdXNlZFRpbWVvdXRzLmNsZWFyKCk7CiAgICAgbV9jYWNoZWRQYWdlUGxh
dGZvcm1EYXRhLmNsZWFyKCk7CiAgICAgbV93aW5kb3dMb2NhbFN0b3JhZ2UuY2xlYXIoKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaCBiL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmgKaW5kZXggOTE1N2IwYi4uMGY2NGFlOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAorKysgYi9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5o
CkBAIC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGcmFtZVZp
ZXc7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOwotICAgIGNsYXNzIFBhdXNlZFRp
bWVvdXRzOwogCiBjbGFzcyBDYWNoZWRQYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVkUGFn
ZT4gewogcHVibGljOgpAQCAtNzgsNyArNzcsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxLSlM6
OlNhdmVkUHJvcGVydGllcz4gbV9sb2NhdGlvblByb3BlcnRpZXM7CiAgICAgT3duUHRyPEtKUzo6
U2F2ZWRQcm9wZXJ0aWVzPiBtX3dpbmRvd0xvY2FsU3RvcmFnZTsKICAgICBPd25QdHI8S0pTOjpT
YXZlZEJ1aWx0aW5zPiBtX3dpbmRvd0J1aWx0aW5zOwotICAgIE93blB0cjxQYXVzZWRUaW1lb3V0
cz4gbV9wYXVzZWRUaW1lb3V0czsKICAgICBPd25QdHI8Q2FjaGVkUGFnZVBsYXRmb3JtRGF0YT4g
bV9jYWNoZWRQYWdlUGxhdGZvcm1EYXRhOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA1MTE5YzQxLi45ZTM4
YTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgotI2luY2x1ZGUgIlBh
dXNlZFRpbWVvdXRzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01NCw5ICs1Myw2IEBA
IHB1YmxpYzoKICAgICB+UGFnZUdyb3VwTG9hZERlZmVycmVyKCk7CiBwcml2YXRlOgogICAgIFZl
Y3RvcjxSZWZQdHI8RnJhbWU+LCAxNj4gbV9kZWZlcnJlZEZyYW1lczsKLSNpZiAhUExBVEZPUk0o
TUFDKQotICAgIFZlY3RvcjxwYWlyPFJlZlB0cjxGcmFtZT4sIFBhdXNlZFRpbWVvdXRzKj4sIDE2
PiBtX3BhdXNlZFRpbWVvdXRzOwotI2VuZGlmCiB9OwogCiBDaHJvbWU6OkNocm9tZShQYWdlKiBw
YWdlLCBDaHJvbWVDbGllbnQqIGNsaWVudCkKQEAgLTM3OCwxMSArMzc0LDggQEAgUGFnZUdyb3Vw
TG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIoUGFnZSogcGFnZSwgYm9vbCBkZWZl
clNlbGYpCiAKICNpZiAhUExBVEZPUk0oTUFDKQogICAgICAgICAgICAgZm9yIChGcmFtZSogZnJh
bWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LT50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICAgICAgICAgIGlmIChKU0RPTVdpbmRvdyogd2lu
ZG93ID0gdG9KU0RPTVdpbmRvdyhmcmFtZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgUGF1c2Vk
VGltZW91dHMqIHRpbWVvdXRzID0gd2luZG93LT5wYXVzZVRpbWVvdXRzKCk7Ci0KLSAgICAgICAg
ICAgICAgICAgICAgbV9wYXVzZWRUaW1lb3V0cy5hcHBlbmQobWFrZV9wYWlyKGZyYW1lLCB0aW1l
b3V0cykpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoSlNET01XaW5k
b3cqIHdpbmRvdyA9IHRvSlNET01XaW5kb3coZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICB3
aW5kb3ctPnNldFRpbWVvdXRzUGF1c2VkKHRydWUpOwogICAgICAgICAgICAgfQogI2VuZGlmCiAg
ICAgICAgIH0KQEAgLTM5NywyMCArMzkwLDE4IEBAIFBhZ2VHcm91cExvYWREZWZlcnJlcjo6UGFn
ZUdyb3VwTG9hZERlZmVycmVyKFBhZ2UqIHBhZ2UsIGJvb2wgZGVmZXJTZWxmKQogUGFnZUdyb3Vw
TG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKIHsKICAgICBzaXplX3QgY291
bnQgPSBtX2RlZmVycmVkRnJhbWVzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNvdW50OyArK2kpCi0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9kZWZlcnJlZEZyYW1lc1tp
XS0+cGFnZSgpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAg
ICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZGVmZXJyZWRGcmFtZXNbaV0tPnBhZ2UoKSkgewogICAg
ICAgICAgICAgcGFnZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CiAKICNpZiAhUExBVEZPUk0o
TUFDKQotICAgIGNvdW50ID0gbV9wYXVzZWRUaW1lb3V0cy5zaXplKCk7Ci0KLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgSlNET01XaW5kb3cqIHdpbmRv
dyA9IHRvSlNET01XaW5kb3cobV9wYXVzZWRUaW1lb3V0c1tpXS5maXJzdC5nZXQoKSk7Ci0gICAg
ICAgIGlmICh3aW5kb3cpCi0gICAgICAgICAgICB3aW5kb3ctPnJlc3VtZVRpbWVvdXRzKG1fcGF1
c2VkVGltZW91dHNbaV0uc2Vjb25kKTsKLSAgICAgICAgZGVsZXRlIG1fcGF1c2VkVGltZW91dHNb
aV0uc2Vjb25kOwotICAgIH0KKyAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+
bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgp
KSB7CisgICAgICAgICAgICAgICAgaWYgKEpTRE9NV2luZG93KiB3aW5kb3cgPSB0b0pTRE9NV2lu
ZG93KGZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LT5zZXRUaW1lb3V0c1BhdXNl
ZChmYWxzZSk7CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgfQorICAgIH0KIH0KIAog
Ci0tIAoxLjUuNC40LjUzNy5nYjc1YWEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19769</attachid>
            <date>2008-03-14 12:28:41 -0700</date>
            <delta_ts>2008-03-15 20:55:26 -0700</delta_ts>
            <desc>[2/2] Remove PausedTimeouts</desc>
            <filename>0002--Remove-PausedTimeouts.patch</filename>
            <type>text/plain</type>
            <size>18649</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAxNmJhOTZiMDYzNTg3ZTUxZTEyOTkxYTRhOTExMzY4OGY0NDBkOWY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDE0IE1hciAyMDA4IDE1OjAwOjU1IC0wNDAwClN1YmplY3Q6IFtQRlIgMi8yXSAgICAgICAg
IFJlbW92ZSBQYXVzZWRUaW1lb3V0cwoKICAgICAgICBET01XaW5kb3dUaW1lciBjYW4gbm93IGJl
IHBhdXNlZC9yZXN1bWVkIGRpcmVjdGx5LgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KCiAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3ZlZCBQYXVzZWRUaW1lb3V0cy57
Y3BwLGh9LgogICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgogICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgogICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBEaXR0by4KICAgICAgICAqIFdlYkNvcmVTb3VyY2VzLmJrbDogRGl0
dG8uCiAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3dUaW1lcjo6RE9NV2luZG93VGltZXIpOiBJbml0aWFsaXplIG5ldyBt
ZW1iZXJzLgogICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnBhdXNlVGltZW91dHMp
OiBDaGFuZ2VkIHRvIGp1c3QgY2FsbAogICAgICAgIHNldFBhdXNlZCh0cnVlKSBvbiBlYWNoIHRp
bWVvdXQuCiAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6cmVzdW1lVGltZW91dHMp
OiBDaGFuZ2VkIHRvIGp1c3QgY2FsbAogICAgICAgIHNldFBhdXNlZChmYWxzZSkgb24gZWFjaCB0
aW1lb3V0LgogICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dUaW1lcjo6c2V0UGF1c2VkKTogV2hl
biBwYXVzaW5nLCB3ZSByZWNvcmQgb3VyCiAgICAgICAgbmV4dEZpcmVJbnRlcnZhbCBhbmQgcmVw
ZWF0SW50ZXJ2YWwgYW5kIGNhbGwgc3RvcCgpIG9uIG91cnNlbHZlcy4gV2hlbgogICAgICAgIHJl
c3VtaW5nLCB3ZSBjYWxsIHN0YXJ0KCkgdXNpbmcgdGhlIHNhdmVkIGludGVydmFscy4gVGhpcyBp
cwogICAgICAgIGVxdWl2YWxlbnQgdG8gd2hhdCBKU0RPTVdpbmRvd0Jhc2U6OntwYXVzZSxyZXN1
bWV9VGltZW91dHMgZGlkIHVzaW5nCiAgICAgICAgdGhlIFBhdXNlZFRpbWVvdXRzL1BhdXNlZFRp
bWVvdXQgc3RydWN0cy4KICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93VGltZXI6OmZpcmVkKTog
QWRkZWQgYW4gYXNzZXJ0aW9uIHRoYXQgd2UncmUgbm90CiAgICAgICAgcGF1c2VkIHdoZW4gd2Ug
ZmlyZS4KICAgICAgICAqIGJpbmRpbmdzL2pzL1BhdXNlZFRpbWVvdXRzLmNwcDogUmVtb3ZlZC4K
ICAgICAgICAqIGJpbmRpbmdzL2pzL1BhdXNlZFRpbWVvdXRzLmg6IFJlbW92ZWQuCi0tLQogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUyICsrKysrKysrKysr
KysrKysrKysrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgIHwg
ICAgMSAtCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEg
LQogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgfCAgICA4IC0tLS0K
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICAgOCAtLS0tCiBX
ZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbCAgICAgICAgICAgICAgICB8ICAgIDEgLQogV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwICAgfCAgIDY2ICsrKysrKysrKysrKysr
Ky0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvYmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMuY3BwICAg
IHwgICA0MSAtLS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvYmluZGluZ3MvanMvUGF1c2VkVGlt
ZW91dHMuaCAgICAgIHwgICA1NyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA5IGZpbGVzIGNo
YW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDE0OCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw
MDY0NCBXZWJDb3JlL2JpbmRpbmdzL2pzL1BhdXNlZFRpbWVvdXRzLmNwcAogZGVsZXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvYmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMuaAoKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRlZGRjNC4uMzU5
NWVjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsNSArMSw1NyBAQAogMjAwOC0wMy0xNCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBs
ZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIFBhdXNlZFRpbWVvdXRzCisKKyAgICAgICAgRE9NV2lu
ZG93VGltZXIgY2FuIG5vdyBiZSBwYXVzZWQvcmVzdW1lZCBkaXJlY3RseS4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBS
ZW1vdmVkIFBhdXNlZFRpbWVvdXRzLntjcHAsaH0uCisgICAgICAgICogV2ViQ29yZS5wcm86IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmVTb3VyY2VzLmJrbDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1RpbWVyOjpET01X
aW5kb3dUaW1lcik6IEluaXRpYWxpemUgbmV3IG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd0Jhc2U6OnBhdXNlVGltZW91dHMpOiBDaGFuZ2VkIHRvIGp1c3QgY2FsbAorICAg
ICAgICBzZXRQYXVzZWQodHJ1ZSkgb24gZWFjaCB0aW1lb3V0LgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjpyZXN1bWVUaW1lb3V0cyk6IENoYW5nZWQgdG8ganVzdCBjYWxsCisg
ICAgICAgIHNldFBhdXNlZChmYWxzZSkgb24gZWFjaCB0aW1lb3V0LgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93VGltZXI6OnNldFBhdXNlZCk6IFdoZW4gcGF1c2luZywgd2UgcmVjb3JkIG91
cgorICAgICAgICBuZXh0RmlyZUludGVydmFsIGFuZCByZXBlYXRJbnRlcnZhbCBhbmQgY2FsbCBz
dG9wKCkgb24gb3Vyc2VsdmVzLiBXaGVuCisgICAgICAgIHJlc3VtaW5nLCB3ZSBjYWxsIHN0YXJ0
KCkgdXNpbmcgdGhlIHNhdmVkIGludGVydmFscy4gVGhpcyBpcworICAgICAgICBlcXVpdmFsZW50
IHRvIHdoYXQgSlNET01XaW5kb3dCYXNlOjp7cGF1c2UscmVzdW1lfVRpbWVvdXRzIGRpZCB1c2lu
ZworICAgICAgICB0aGUgUGF1c2VkVGltZW91dHMvUGF1c2VkVGltZW91dCBzdHJ1Y3RzLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93VGltZXI6OmZpcmVkKTogQWRkZWQgYW4gYXNzZXJ0aW9u
IHRoYXQgd2UncmUgbm90CisgICAgICAgIHBhdXNlZCB3aGVuIHdlIGZpcmUuCisgICAgICAgICog
YmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1BhdXNlZFRpbWVvdXRzLmg6IFJlbW92ZWQuCisKKzIwMDgtMDMtMTQgIEFkYW0gUm9i
ZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXVzZWRUaW1lb3V0cwor
CisgICAgICAgIEpTRE9NV2luZG93QmFzZSBub3cgaG9sZHMgYSBWZWN0b3Igb2YgUGF1c2VkVGlt
ZW91dCBzdHJ1Y3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlbW92ZWQgUGF1c2VkVGltZW91dHMue2NwcCxofS4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlUHJpdmF0ZTo6fkpTRE9NV2luZG93QmFzZVByaXZhdGUpOiBE
ZWxldGUgYW55CisgICAgICAgIFNjaGVkdWxlZEFjdGlvbnMgc3RpbGwgaGVsZCBpbiBtX3BhdXNl
ZFRpbWVvdXRzICh+UGF1c2VkVGltZW91dHMgdXNlZAorICAgICAgICB0byBkbyB0aGlzKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6cGF1c2VUaW1lb3V0cyk6IFVwZGF0ZWQg
dG8gdXNlCisgICAgICAgIGQtPm1fcGF1c2VkVGltZW91dHMgYXMgYSBWZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnJlc3VtZVRpbWVvdXRzKTogRGl0dG8uCisgICAg
ICAgICogYmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1BhdXNlZFRpbWVvdXRzLmg6IFJlbW92ZWQuCisKKzIwMDgtMDMtMTQgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIE1ha2UgSlNET01XaW5kb3dC
YXNlIGhvbGQgb250byBpdHMgUGF1c2VkVGltZW91dHMKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDAxYjUwNjEuLjdiODIxOWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNTIy
LDcgKzUyMiw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfZXZlbnRzLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9Q
YXVzZWRUaW1lb3V0cy5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIFwKIAlXZWJDb3JlL2JyaWRn
ZS9jL2NfY2xhc3MuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDM1MzY4ZmQuLjUyNjJiNjggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDUyLDcgKzQ1Miw2
IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwIFwKICAgICBi
aW5kaW5ncy9qcy9ranNfaHRtbC5jcHAgXAogICAgIGJpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAg
XAotICAgIGJpbmRpbmdzL2pzL1BhdXNlZFRpbWVvdXRzLmNwcCBcCiAgICAgYmluZGluZ3MvanMv
U2NoZWR1bGVkQWN0aW9uLmNwcCBcCiAgICAgYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBcCiAgICAg
YnJpZGdlL25wcnVudGltZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggMzkwM2E1NC4uM2JlM2ZiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0xMDA4NywxNCArMTAwODcsNiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJ
PEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcUGF1c2VkVGltZW91dHMu
Y3BwIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXFBhdXNlZFRpbWVvdXRzLmgiDQotCQkJCQk+DQotCQkJCTwvRmls
ZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcU2NoZWR1
bGVkQWN0aW9uLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGM1ZWI1ZS4uNzA3YjRiZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2MjgsOCArMzYyOCw2IEBA
CiAJCUJDOUFERDgwMENDNDA5MjIwMDA5OEM0QyAvKiBDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzlBREQ3RjBDQzQw
OTIyMDAwOThDNEMgLyogQ1NTVHJhbnNmb3JtVmFsdWUuY3BwICovOyB9OwogCQlCQ0ExNjlBMjBC
RkQ1NUI0MDAxOUNBNzYgLyogSlNIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ExNjlBMDBCRkQ1NUI0MDAx
OUNBNzYgLyogSlNIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgKi87IH07CiAJCUJDQTE2OUEz
MEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ExNjlBMTBCRkQ1NUI0MDAx
OUNBNzYgLyogSlNIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oICovOyB9OwotCQlCQ0EzNzgxNjBE
MTVDNjQ2MDBCNzkzRDYgLyogUGF1c2VkVGltZW91dHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMzc4MTQwRDE1QzY0NjAwQjc5M0Q2IC8qIFBh
dXNlZFRpbWVvdXRzLmNwcCAqLzsgfTsKLQkJQkNBMzc4MTcwRDE1QzY0NjAwQjc5M0Q2IC8qIFBh
dXNlZFRpbWVvdXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0EzNzgxNTBEMTVDNjQ2MDBCNzkzRDYgLyogUGF1c2VkVGltZW91dHMuaCAqLzsgfTsK
IAkJQkNBMzc5MTQwRDE2M0U1NTAwQjc5M0Q2IC8qIEpTTG9jYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMzc5MTIwRDE2M0U1NTAwQjc5
M0Q2IC8qIEpTTG9jYXRpb24uY3BwICovOyB9OwogCQlCQ0EzNzkxNTBEMTYzRTU1MDBCNzkzRDYg
LyogSlNMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNBMzc5MTMwRDE2M0U1NTAwQjc5M0Q2IC8qIEpTTG9jYXRpb24uaCAqLzsgfTsKIAkJ
QkNBMzc5M0YwRDE2NDdFMDAwQjc5M0Q2IC8qIEpTTG9jYXRpb24ubHV0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0EzNzkzRTBEMTY0N0UwMDBCNzkz
RDYgLyogSlNMb2NhdGlvbi5sdXQuaCAqLzsgfTsKQEAgLTc4MTMsOCArNzgxMSw2IEBACiAJCUJD
OUFERDdGMENDNDA5MjIwMDA5OEM0QyAvKiBDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVHJhbnNmb3JtVmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ExNjlBMDBCRkQ1NUI0MDAxOUNBNzYgLyogSlNI
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDQTE2OUExMEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxUYWJs
ZUNhcHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQTM3ODE0
MEQxNUM2NDYwMEI3OTNENiAvKiBQYXVzZWRUaW1lb3V0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQYXVzZWRUaW1lb3V0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQTM3ODE1MEQxNUM2NDYwMEI3OTNENiAvKiBQYXVzZWRUaW1lb3V0cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXVzZWRUaW1lb3V0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2No
ZWR1bGVkQWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
aGVkdWxlZEFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTM3OEJC
MEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDQTM3OTEyMEQxNjNFNTUwMEI3OTNENiAvKiBKU0xvY2F0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTE3MzgsOCArMTE3MzQsNiBAQAogCQkJCTkzQjcwRDUwMDlF
QjBDN0MwMDlEODQ2OCAvKiBranNfaHRtbC5oICovLAogCQkJCTkzQjcwRDUzMDlFQjBDN0MwMDlE
ODQ2OCAvKiBranNfcHJveHkuY3BwICovLAogCQkJCTkzQjcwRDU0MDlFQjBDN0MwMDlEODQ2OCAv
KiBranNfcHJveHkuaCAqLywKLQkJCQlCQ0EzNzgxNDBEMTVDNjQ2MDBCNzkzRDYgLyogUGF1c2Vk
VGltZW91dHMuY3BwICovLAotCQkJCUJDQTM3ODE1MEQxNUM2NDYwMEI3OTNENiAvKiBQYXVzZWRU
aW1lb3V0cy5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRB
Y3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRB
Y3Rpb24uaCAqLywKIAkJCSk7CkBAIC0xMzk5NSw3ICsxMzk4OSw2IEBACiAJCQkJQjI3NTM1ODAw
QjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OERENDg3MEI0
NjI5QTMwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3OTcxMEQwMEJGMjIwMDcxQjc4MiAvKiBQYXR0ZXJuQXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkNBMzc4MTcwRDE1QzY0NjAwQjc5M0Q2IC8qIFBhdXNlZFRpbWVvdXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU4MjBCMDUzODE0MDAyQ0U2NEYgLyogUGVuLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzVDNDc2ODA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzI4NzFDMDBCMjBERUI3MDA0OTAzNUEg
LyogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMTU2NTIsNyAr
MTU2NDUsNiBAQAogCQkJCUIyNzUzNTdGMEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRoLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTYzMEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRoQ0cuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg4REQ0ODkwQjQ2MjlCMDAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJz
YWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0EzNzgxNjBEMTVDNjQ2MDBCNzkzRDYg
LyogUGF1c2VkVGltZW91dHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1ODEwQjA1Mzgx
NDAwMkNFNjRGIC8qIFBlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzVDNDc3MTA5QUM0RDcz
MDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM5NEQxMDgwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbCBiL1dlYkNvcmUv
V2ViQ29yZVNvdXJjZXMuYmtsCmluZGV4IGRjZmZjZGIuLjBmMDFhZGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCisrKyBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmts
CkBAIC05Nyw3ICs5Nyw2IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBu
ZWVkZWQgdG8gYnVpbGQgV2ViQ29yZS4KICAgICAgICAgYmluZGluZ3MvanMva2pzX2V2ZW50cy5j
cHAKICAgICAgICAgYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCiAgICAgICAgIGJpbmRpbmdzL2pz
L2tqc19wcm94eS5jcHAKLSAgICAgICAgYmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMuY3BwCiAg
ICAgICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICA8L3NldD4KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDE2M2E2OGIuLjQzYjQ5YTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTUwLDcgKzUwLDYg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNs
dWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGF1c2VkVGltZW91dHMuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKQEAgLTEwMSw3ICsxMDAsNiBAQCBzdHJ1Y3QgSlNET01XaW5kb3dCYXNlUHJp
dmF0ZSB7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBET01XaW5kb3dUaW1lcio+IFRpbWVv
dXRzTWFwOwogICAgIFRpbWVvdXRzTWFwIG1fdGltZW91dHM7Ci0gICAgT3duUHRyPFBhdXNlZFRp
bWVvdXRzKj4gbV9wYXVzZWRUaW1lb3V0czsKICAgICBib29sIG1fYXJlVGltZW91dHNQYXVzZWQ7
CiB9OwogCkBAIC0xMTIsNiArMTEwLDkgQEAgcHVibGljOgogICAgICAgICAsIG1fbmVzdGluZ0xl
dmVsKG5lc3RpbmdMZXZlbCkKICAgICAgICAgLCBtX29iamVjdChvYmplY3QpCiAgICAgICAgICwg
bV9hY3Rpb24oYWN0aW9uKQorICAgICAgICAsIG1fcGF1c2VkKGZhbHNlKQorICAgICAgICAsIG1f
cGF1c2VkTmV4dEZpcmVJbnRlcnZhbCgwKQorICAgICAgICAsIG1fcGF1c2VkUmVwZWF0SW50ZXJ2
YWwoMCkKICAgICB7CiAgICAgfQogCkBAIC0xMjYsNiArMTI3LDggQEAgcHVibGljOgogICAgIGlu
dCBuZXN0aW5nTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX25lc3RpbmdMZXZlbDsgfQogICAgIHZv
aWQgc2V0TmVzdGluZ0xldmVsKGludCBuKSB7IG1fbmVzdGluZ0xldmVsID0gbjsgfQogCisgICAg
dm9pZCBzZXRQYXVzZWQoYm9vbCk7CisKICAgICBTY2hlZHVsZWRBY3Rpb24qIGFjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aW9uOyB9CiAgICAgU2NoZWR1bGVkQWN0aW9uKiB0YWtlQWN0aW9u
KCkgeyBTY2hlZHVsZWRBY3Rpb24qIGEgPSBtX2FjdGlvbjsgbV9hY3Rpb24gPSAwOyByZXR1cm4g
YTsgfQogCkBAIC0xMzYsNiArMTM5LDEwIEBAIHByaXZhdGU6CiAgICAgaW50IG1fbmVzdGluZ0xl
dmVsOwogICAgIEpTRE9NV2luZG93QmFzZSogbV9vYmplY3Q7CiAgICAgU2NoZWR1bGVkQWN0aW9u
KiBtX2FjdGlvbjsKKworICAgIGJvb2wgbV9wYXVzZWQ7CisgICAgZG91YmxlIG1fcGF1c2VkTmV4
dEZpcmVJbnRlcnZhbDsKKyAgICBkb3VibGUgbV9wYXVzZWRSZXBlYXRJbnRlcnZhbDsKIH07CiAK
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSlNET01XaW5kb3dCYXNlIE9iamVjdCAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KQEAgLTEzNDksNDAgKzEzNTYsMTggQEAgdm9pZCBKU0RPTVdpbmRvd0Jh
c2U6OnBhdXNlVGltZW91dHMoKQogICAgIGlmICghY291bnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFBhdXNlZFRpbWVvdXQqIHQgPSBuZXcgUGF1c2VkVGltZW91dCBbY291bnRdOwotICAgIFBh
dXNlZFRpbWVvdXRzKiByZXN1bHQgPSBuZXcgUGF1c2VkVGltZW91dHModCwgY291bnQpOwotCiAg
ICAgSlNET01XaW5kb3dCYXNlUHJpdmF0ZTo6VGltZW91dHNNYXA6Oml0ZXJhdG9yIGl0ID0gZC0+
bV90aW1lb3V0cy5iZWdpbigpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IGNvdW50OyAr
K2ksICsraXQpIHsKLSAgICAgICAgaW50IHRpbWVvdXRJZCA9IGl0LT5maXJzdDsKLSAgICAgICAg
RE9NV2luZG93VGltZXIqIHRpbWVyID0gaXQtPnNlY29uZDsKLSAgICAgICAgdFtpXS50aW1lb3V0
SWQgPSB0aW1lb3V0SWQ7Ci0gICAgICAgIHRbaV0ubmVzdGluZ0xldmVsID0gdGltZXItPm5lc3Rp
bmdMZXZlbCgpOwotICAgICAgICB0W2ldLm5leHRGaXJlSW50ZXJ2YWwgPSB0aW1lci0+bmV4dEZp
cmVJbnRlcnZhbCgpOwotICAgICAgICB0W2ldLnJlcGVhdEludGVydmFsID0gdGltZXItPnJlcGVh
dEludGVydmFsKCk7Ci0gICAgICAgIHRbaV0uYWN0aW9uID0gdGltZXItPnRha2VBY3Rpb24oKTsK
LSAgICB9Ci0gICAgQVNTRVJUKGl0ID09IGQtPm1fdGltZW91dHMuZW5kKCkpOwotCi0gICAgZGVs
ZXRlQWxsVmFsdWVzKGQtPm1fdGltZW91dHMpOwotICAgIGQtPm1fdGltZW91dHMuY2xlYXIoKTsK
LQotICAgIGQtPm1fcGF1c2VkVGltZW91dHMuc2V0KHJlc3VsdCk7CisgICAgSlNET01XaW5kb3dC
YXNlUHJpdmF0ZTo6VGltZW91dHNNYXA6Oml0ZXJhdG9yIGVuZCA9IGQtPm1fdGltZW91dHMuZW5k
KCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+c2V0
UGF1c2VkKHRydWUpOwogfQogCiB2b2lkIEpTRE9NV2luZG93QmFzZTo6cmVzdW1lVGltZW91dHMo
KQogewotICAgIGlmICghZC0+bV9wYXVzZWRUaW1lb3V0cykKLSAgICAgICAgcmV0dXJuOwotICAg
IHNpemVfdCBjb3VudCA9IGQtPm1fcGF1c2VkVGltZW91dHMtPm51bVRpbWVvdXRzKCk7Ci0gICAg
UGF1c2VkVGltZW91dCogYXJyYXkgPSBkLT5tX3BhdXNlZFRpbWVvdXRzLT50YWtlVGltZW91dHMo
KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBjb3VudDsgKytpKSB7Ci0gICAgICAgIGlu
dCB0aW1lb3V0SWQgPSBhcnJheVtpXS50aW1lb3V0SWQ7Ci0gICAgICAgIERPTVdpbmRvd1RpbWVy
KiB0aW1lciA9IG5ldyBET01XaW5kb3dUaW1lcih0aW1lb3V0SWQsIGFycmF5W2ldLm5lc3RpbmdM
ZXZlbCwgdGhpcywgYXJyYXlbaV0uYWN0aW9uKTsKLSAgICAgICAgZC0+bV90aW1lb3V0cy5zZXQo
dGltZW91dElkLCB0aW1lcik7Ci0gICAgICAgIHRpbWVyLT5zdGFydChhcnJheVtpXS5uZXh0Rmly
ZUludGVydmFsLCBhcnJheVtpXS5yZXBlYXRJbnRlcnZhbCk7Ci0gICAgfQotICAgIGQtPm1fcGF1
c2VkVGltZW91dHMuY2xlYXIoKTsKKyAgICBKU0RPTVdpbmRvd0Jhc2VQcml2YXRlOjpUaW1lb3V0
c01hcDo6aXRlcmF0b3IgaXQgPSBkLT5tX3RpbWVvdXRzLmJlZ2luKCk7CisgICAgSlNET01XaW5k
b3dCYXNlUHJpdmF0ZTo6VGltZW91dHNNYXA6Oml0ZXJhdG9yIGVuZCA9IGQtPm1fdGltZW91dHMu
ZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+
c2V0UGF1c2VkKGZhbHNlKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmNsZWFyVGltZW91
dChpbnQgdGltZW91dElkLCBib29sIGRlbEFjdGlvbikKQEAgLTE0NTQsOCArMTQzOSwyNyBAQCBK
U0RPTVdpbmRvd0Jhc2U6OlVucHJvdGVjdGVkTGlzdGVuZXJzTWFwJiBKU0RPTVdpbmRvd0Jhc2U6
OmpzVW5wcm90ZWN0ZWRIVE1MRXZlbgogICAgIHJldHVybiBkLT5qc1VucHJvdGVjdGVkSFRNTEV2
ZW50TGlzdGVuZXJzOwogfQogCit2b2lkIERPTVdpbmRvd1RpbWVyOjpzZXRQYXVzZWQoYm9vbCBw
YXVzZWQpCit7CisgICAgaWYgKG1fcGF1c2VkID09IHBhdXNlZCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fcGF1c2VkID0gcGF1c2VkOworCisgICAgaWYgKG1fcGF1c2VkKSB7CisgICAgICAgIG1f
cGF1c2VkTmV4dEZpcmVJbnRlcnZhbCA9IG5leHRGaXJlSW50ZXJ2YWwoKTsKKyAgICAgICAgbV9w
YXVzZWRSZXBlYXRJbnRlcnZhbCA9IHJlcGVhdEludGVydmFsKCk7CisgICAgICAgIHN0b3AoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBzdGFydChtX3BhdXNlZE5leHRGaXJlSW50ZXJ2YWwsIG1f
cGF1c2VkUmVwZWF0SW50ZXJ2YWwpOworICAgICAgICBtX3BhdXNlZE5leHRGaXJlSW50ZXJ2YWwg
PSAwOworICAgICAgICBtX3BhdXNlZFJlcGVhdEludGVydmFsID0gMDsKKyAgICB9Cit9CisKIHZv
aWQgRE9NV2luZG93VGltZXI6OmZpcmVkKCkKIHsKKyAgICBBU1NFUlQoIW1fcGF1c2VkKTsKKwog
ICAgIHRpbWVyTmVzdGluZ0xldmVsID0gbV9uZXN0aW5nTGV2ZWw7CiAgICAgbV9vYmplY3QtPnRp
bWVyRmlyZWQodGhpcyk7CiAgICAgdGltZXJOZXN0aW5nTGV2ZWwgPSAwOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9QYXVzZWRUaW1lb3V0cy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL1BhdXNlZFRpbWVvdXRzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhh
NTlkOC4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhdXNlZFRpbWVvdXRzLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2
IEpvbiBTaGllciAoanNoaWVyQGlhc3RhdGUuZWR1KQotICogIENvcHlyaWdodCAoQykgMjAwMywg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXZlZC4KLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykK
LSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQot
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEKLSAqICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUGF1c2VkVGltZW91dHMuaCIKLQotI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlv
bi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBhdXNlZFRpbWVvdXRzOjp+UGF1c2VkVGlt
ZW91dHMoKQotewotICAgIFBhdXNlZFRpbWVvdXQqIGFycmF5ID0gbV9hcnJheTsKLSAgICBpZiAo
IWFycmF5KQotICAgICAgICByZXR1cm47Ci0gICAgc2l6ZV90IGNvdW50ID0gbV9sZW5ndGg7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gY291bnQ7ICsraSkKLSAgICAgICAgZGVsZXRlIGFy
cmF5W2ldLmFjdGlvbjsKLSAgICBkZWxldGUgW10gYXJyYXk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMu
aCBiL1dlYkNvcmUvYmluZGluZ3MvanMvUGF1c2VkVGltZW91dHMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzgzOWVhZS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1BhdXNlZFRpbWVvdXRzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICog
IENvcHlyaWdodCAoQykgMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENv
cHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYg
UGF1c2VkVGltZW91dHNfaAotI2RlZmluZSBQYXVzZWRUaW1lb3V0c19oCi0KLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgU2No
ZWR1bGVkQWN0aW9uOwotCi0gICAgc3RydWN0IFBhdXNlZFRpbWVvdXQgewotICAgICAgICBpbnQg
dGltZW91dElkOwotICAgICAgICBpbnQgbmVzdGluZ0xldmVsOwotICAgICAgICBkb3VibGUgbmV4
dEZpcmVJbnRlcnZhbDsKLSAgICAgICAgZG91YmxlIHJlcGVhdEludGVydmFsOwotICAgICAgICBT
Y2hlZHVsZWRBY3Rpb24qIGFjdGlvbjsKLSAgICB9OwotCi0gICAgY2xhc3MgUGF1c2VkVGltZW91
dHMgOiBOb25jb3B5YWJsZSB7Ci0gICAgcHVibGljOgotICAgICAgICBQYXVzZWRUaW1lb3V0cyhQ
YXVzZWRUaW1lb3V0KiBhcnJheSwgc2l6ZV90IGxlbmd0aCkKLSAgICAgICAgICAgIDogbV9hcnJh
eShhcnJheSkKLSAgICAgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAgICAgICB7Ci0gICAg
ICAgIH0KLQotICAgICAgICB+UGF1c2VkVGltZW91dHMoKTsKLQotICAgICAgICBzaXplX3QgbnVt
VGltZW91dHMoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQotICAgICAgICBQYXVzZWRUaW1l
b3V0KiB0YWtlVGltZW91dHMoKSB7IFBhdXNlZFRpbWVvdXQqIGEgPSBtX2FycmF5OyBtX2FycmF5
ID0gMDsgcmV0dXJuIGE7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFBhdXNlZFRpbWVvdXQq
IG1fYXJyYXk7Ci0gICAgICAgIHNpemVfdCBtX2xlbmd0aDsKLSAgICB9OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBQYXVzZWRUaW1lb3V0c19oCi0tIAoxLjUuNC40LjUz
Ny5nYjc1YWEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19770</attachid>
            <date>2008-03-14 12:35:50 -0700</date>
            <delta_ts>2008-03-14 12:41:33 -0700</delta_ts>
            <desc>[WIP] Add KJSProxy::[set]JavaScriptExecutionAllowed to pause timeouts and block JS event handlers</desc>
            <filename>0001-Add-KJSProxy-set-JavaScriptExecutionAllowed.patch</filename>
            <type>text/plain</type>
            <size>2674</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBmOTdjNDczOWQ2YWRhOWIyNjljNzYyOWQ4YWQ0OGVhZjNhZTRiZWU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDE0IE1hciAyMDA4IDE0OjE0OjQxIC0wNDAwClN1YmplY3Q6IFtQRlJdIEFkZCBLSlNQcm94
eTo6W3NldF1KYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dlZAoKLS0tCiBXZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19ldmVudHMuY3BwIHwgICAgNyArKy0tLS0tCiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tq
c19wcm94eS5jcHAgIHwgICAxMyArKysrKysrKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tq
c19wcm94eS5oICAgIHwgICAgNCArKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMo
KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNf
ZXZlbnRzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHAKaW5kZXggNDdj
NDQ0NC4uMGZiODc1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRz
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCkBAIC00OCwxMSAr
NDgsNiBAQCBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6SlNBYnN0cmFjdEV2ZW50TGlzdGVuZXIo
Ym9vbCBodG1sKQogCiB2b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChF
dmVudCogZWxlLCBib29sIGlzV2luZG93RXZlbnQpCiB7Ci0jaWZkZWYgS0pTX0RFQlVHR0VSCi0g
ICAgaWYgKEtKU0RlYnVnV2luOjppbnN0YW5jZSgpICYmIEtKU0RlYnVnV2luOjppbnN0YW5jZSgp
LT5pblNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICBFdmVudCogZXZl
bnQgPSBlbGU7CiAKICAgICBKU09iamVjdCogbGlzdGVuZXIgPSBsaXN0ZW5lck9iaigpOwpAQCAt
NjksNiArNjQsOCBAQCB2b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChF
dmVudCogZWxlLCBib29sIGlzV2luZG93RXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
IWZyYW1lLT5zY3JpcHRQcm94eSgpLT5pc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOworICAg
IGlmICghZnJhbWUtPnNjcmlwdFByb3h5KCktPmphdmFTY3JpcHRFeGVjdXRpb25BbGxvd2VkKCkp
CisgICAgICAgIHJldHVybjsKIAogICAgIEpTTG9jayBsb2NrOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19w
cm94eS5jcHAKaW5kZXggNzY4ZGZhYS4uNzcyZGRkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9ranNfcHJveHkuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5
LmNwcApAQCAtNDksNiArNDksNyBAQCBLSlNQcm94eTo6S0pTUHJveHkoRnJhbWUqIGZyYW1lKQog
ICAgICwgbV9oYW5kbGVyTGluZW5vKDApCiAgICAgLCBtX3Byb2Nlc3NpbmdUaW1lckNhbGxiYWNr
KDApCiAgICAgLCBtX3Byb2Nlc3NpbmdJbmxpbmVDb2RlKDApCisgICAgLCBtX2phdmFTY3JpcHRF
eGVjdXRpb25BbGxvd2VkKHRydWUpCiB7CiB9CiAKQEAgLTIwOCw0ICsyMDksMTYgQEAgdm9pZCBL
SlNQcm94eTo6YXR0YWNoRGVidWdnZXIoS0pTOjpEZWJ1Z2dlciogZGVidWdnZXIpCiAgICAgICAg
IGN1cnJlbnREZWJ1Z2dlci0+ZGV0YWNoKG1fZ2xvYmFsT2JqZWN0KTsKIH0KIAordm9pZCBLSlNQ
cm94eTo6c2V0SmF2YVNjcmlwdEV4ZWN1dGlvbkFsbG93ZWQoYm9vbCBhbGxvd2VkKQoreworICAg
IGlmICghbV9nbG9iYWxPYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2phdmFT
Y3JpcHRFeGVjdXRpb25BbGxvd2VkID09IGFsbG93ZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1famF2YVNjcmlwdEV4ZWN1dGlvbkFsbG93ZWQgPSBhbGxvd2VkOworICAgIG1fZ2xvYmFsT2Jq
ZWN0LT5zZXRUaW1lb3V0c1BhdXNlZChhbGxvd2VkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaCBiL1dlYkNv
cmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmgKaW5kZXggYWFjNTg4MC4uZGZiZmM5MiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL2tqc19wcm94eS5oCkBAIC03MCw2ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
YXR0YWNoRGVidWdnZXIoS0pTOjpEZWJ1Z2dlciopOwogCisgICAgdm9pZCBzZXRKYXZhU2NyaXB0
RXhlY3V0aW9uQWxsb3dlZChib29sKTsKKyAgICBib29sIGphdmFTY3JpcHRFeGVjdXRpb25BbGxv
d2VkKCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dlZDsgfQorCiBw
cml2YXRlOgogICAgIHZvaWQgaW5pdFNjcmlwdElmTmVlZGVkKCkKICAgICB7CkBAIC04NCw2ICs4
Nyw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBtX3Byb2Nlc3NpbmdUaW1lckNhbGxiYWNr
OwogICAgIGJvb2wgbV9wcm9jZXNzaW5nSW5saW5lQ29kZTsKKyAgICBib29sIG1famF2YVNjcmlw
dEV4ZWN1dGlvbkFsbG93ZWQ7CiB9OwogCiB9Ci0tIAoxLjUuNC40LjUzNy5nYjc1YWEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19771</attachid>
            <date>2008-03-14 12:41:24 -0700</date>
            <delta_ts>2008-03-15 21:07:09 -0700</delta_ts>
            <desc>[WIP] Pause JS timers, block javascript: URIs, block JS event handlers</desc>
            <filename>0001-Add-KJSProxy-set-JavaScriptExecutionAllowed.patch</filename>
            <type>text/plain</type>
            <size>4355</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA3ZWRjMTFiOWY5NGYyZTE0N2VhYzllNWRlMGFlMzQ4MTRkMTg5ZjVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDE0IE1hciAyMDA4IDE0OjE0OjQxIC0wNDAwClN1YmplY3Q6IFtQRlJdIEFkZCBLSlNQcm94
eTo6W3NldF1KYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dlZAoKVGhpcyBzZXRKYXZhU2NyaXB0RXhl
Y3V0aW9uQWxsb3dlZChmYWxzZSkgd2lsbCBwYXVzZSBKUyB0aW1lcnMsIHN0b3AKamF2YXNjcmlw
dDogVVJJcyBmcm9tIGJlaW5nIGV2YWx1YXRlZCwgYW5kIGJsb2NrIEpTIGV2ZW50IGhhbmRsZXJz
LgotLS0KIFdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCB8ICAgIDYgKysr
Ky0tCiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwICAgICAgfCAgICA3ICsrLS0t
LS0KIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcCAgICAgICB8ICAgMTMgKysrKysr
KysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaCAgICAgICAgIHwgICAgNCAr
KysrCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgICAgICAgICAgfCAgICA0ICsrKy0K
IDUgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNDNiNDlhOC4uNmY2Yzk1NCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMTMwMiw4ICsxMzAy
LDYgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmNsZWFyQWxsVGltZW91dHMoKQogCiBpbnQgSlNE
T01XaW5kb3dCYXNlOjppbnN0YWxsVGltZW91dChTY2hlZHVsZWRBY3Rpb24qIGEsIGludCB0LCBi
b29sIHNpbmdsZVNob3QpCiB7Ci0gICAgQVNTRVJUKCFkLT5tX2FyZVRpbWVvdXRzUGF1c2VkKTsK
LQogICAgIGludCB0aW1lb3V0SWQgPSArK2xhc3RVc2VkVGltZW91dElkOwogCiAgICAgLy8gYXZv
aWQgd3JhcGFyb3VuZCBnb2luZyBuZWdhdGl2ZSBvbiB1cwpAQCAtMTMyNCw2ICsxMzIyLDEwIEBA
IGludCBKU0RPTVdpbmRvd0Jhc2U6Omluc3RhbGxUaW1lb3V0KFNjaGVkdWxlZEFjdGlvbiogYSwg
aW50IHQsIGJvb2wgc2luZ2xlU2hvdCkKICAgICAgICAgdGltZXItPnN0YXJ0T25lU2hvdChpbnRl
cnZhbCk7CiAgICAgZWxzZQogICAgICAgICB0aW1lci0+c3RhcnRSZXBlYXRpbmcoaW50ZXJ2YWwp
OworCisgICAgaWYgKGQtPm1fYXJlVGltZW91dHNQYXVzZWQpCisgICAgICAgIHRpbWVyLT5zZXRQ
YXVzZWQodHJ1ZSk7CisKICAgICByZXR1cm4gdGltZW91dElkOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfZXZlbnRzLmNwcAppbmRleCA0N2M0NDQ0Li4wZmI4NzU4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pz
X2V2ZW50cy5jcHAKQEAgLTQ4LDExICs0OCw2IEBAIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpK
U0Fic3RyYWN0RXZlbnRMaXN0ZW5lcihib29sIGh0bWwpCiAKIHZvaWQgSlNBYnN0cmFjdEV2ZW50
TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBlbGUsIGJvb2wgaXNXaW5kb3dFdmVudCkKIHsK
LSNpZmRlZiBLSlNfREVCVUdHRVIKLSAgICBpZiAoS0pTRGVidWdXaW46Omluc3RhbmNlKCkgJiYg
S0pTRGVidWdXaW46Omluc3RhbmNlKCktPmluU2Vzc2lvbigpKQotICAgICAgICByZXR1cm47Ci0j
ZW5kaWYKLQogICAgIEV2ZW50KiBldmVudCA9IGVsZTsKIAogICAgIEpTT2JqZWN0KiBsaXN0ZW5l
ciA9IGxpc3RlbmVyT2JqKCk7CkBAIC02OSw2ICs2NCw4IEBAIHZvaWQgSlNBYnN0cmFjdEV2ZW50
TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBlbGUsIGJvb2wgaXNXaW5kb3dFdmVudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmICghZnJhbWUtPnNjcmlwdFByb3h5KCktPmlzRW5hYmxlZCgp
KQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFmcmFtZS0+c2NyaXB0UHJveHkoKS0+amF2YVNj
cmlwdEV4ZWN1dGlvbkFsbG93ZWQoKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgSlNMb2NrIGxv
Y2s7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAppbmRleCA3NjhkZmFhLi43NzJkZGQ2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCkBAIC00OSw2ICs0OSw3IEBAIEtKU1Byb3h5OjpL
SlNQcm94eShGcmFtZSogZnJhbWUpCiAgICAgLCBtX2hhbmRsZXJMaW5lbm8oMCkKICAgICAsIG1f
cHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2soMCkKICAgICAsIG1fcHJvY2Vzc2luZ0lubGluZUNvZGUo
MCkKKyAgICAsIG1famF2YVNjcmlwdEV4ZWN1dGlvbkFsbG93ZWQodHJ1ZSkKIHsKIH0KIApAQCAt
MjA4LDQgKzIwOSwxNiBAQCB2b2lkIEtKU1Byb3h5OjphdHRhY2hEZWJ1Z2dlcihLSlM6OkRlYnVn
Z2VyKiBkZWJ1Z2dlcikKICAgICAgICAgY3VycmVudERlYnVnZ2VyLT5kZXRhY2gobV9nbG9iYWxP
YmplY3QpOwogfQogCit2b2lkIEtKU1Byb3h5OjpzZXRKYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dl
ZChib29sIGFsbG93ZWQpCit7CisgICAgaWYgKCFtX2dsb2JhbE9iamVjdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG1famF2YVNjcmlwdEV4ZWN1dGlvbkFsbG93ZWQgPT0gYWxsb3dlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9qYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dlZCA9IGFs
bG93ZWQ7CisgICAgbV9nbG9iYWxPYmplY3QtPnNldFRpbWVvdXRzUGF1c2VkKGFsbG93ZWQpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19wcm94eS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaAppbmRleCBh
YWM1ODgwLi5kZmJmYzkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94
eS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmgKQEAgLTcwLDYgKzcwLDkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihLSlM6OkRlYnVnZ2VyKik7CiAK
KyAgICB2b2lkIHNldEphdmFTY3JpcHRFeGVjdXRpb25BbGxvd2VkKGJvb2wpOworICAgIGJvb2wg
amF2YVNjcmlwdEV4ZWN1dGlvbkFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRF
eGVjdXRpb25BbGxvd2VkOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0U2NyaXB0SWZOZWVk
ZWQoKQogICAgIHsKQEAgLTg0LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1f
cHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2s7CiAgICAgYm9vbCBtX3Byb2Nlc3NpbmdJbmxpbmVDb2Rl
OworICAgIGJvb2wgbV9qYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dlZDsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCBkNTZhY2Q4Li5jMzNiMzZmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC03NTQsNyArNzU0LDkgQEAgSlNWYWx1ZSogRnJhbWVMb2FkZXI6OmV4ZWN1dGVTY3Jp
cHQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKIAogSlNWYWx1
ZSogRnJhbWVMb2FkZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGludCBiYXNl
TGluZSwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lLT5zY3JpcHRQ
cm94eSgpLT5pc0VuYWJsZWQoKSkKKyAgICBLSlNQcm94eSogc2NyaXB0UHJveHkgPSBtX2ZyYW1l
LT5zY3JpcHRQcm94eSgpOworCisgICAgaWYgKCFzY3JpcHRQcm94eS0+aXNFbmFibGVkKCkgfHwg
IXNjcmlwdFByb3h5LT5qYXZhU2NyaXB0RXhlY3V0aW9uQWxsb3dlZCgpKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGJvb2wgd2FzUnVubmluZ1NjcmlwdCA9IG1faXNSdW5uaW5nU2NyaXB0Owot
LSAKMS41LjQuNC41MzcuZ2I3NWFhCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19788</attachid>
            <date>2008-03-15 21:07:09 -0700</date>
            <delta_ts>2008-03-20 16:55:18 -0700</delta_ts>
            <desc>[WIP] Block javascript: URIs and JS event handlers while paused</desc>
            <filename>0001-Add-KJSProxy-setPaused-isPaused.patch</filename>
            <type>text/plain</type>
            <size>3271</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBkMDg1M2ZhNDU0ZjNiNDM0OWJkZDUxNDcxM2VmMGRmOWU4Mjg1Y2RmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDE0IE1hciAyMDA4IDE0OjE0OjQxIC0wNDAwClN1YmplY3Q6IFtQRlJdIEFkZCBLSlNQcm94
eTo6e3NldFBhdXNlZCxpc1BhdXNlZH0KCkNhbGxpbmcgc2V0UGF1c2VkKHRydWUpIHdpbGwgc3Rv
cCBqYXZhc2NyaXB0OiBVUklzIGZyb20gYmVpbmcgZXZhbHVhdGVkIGFuZApibG9jayBKUyBldmVu
dCBoYW5kbGVycy4KLS0tCiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwIHwgICAx
MCArKystLS0tLS0tCiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAgIHwgICAgMSAr
CiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5oICAgIHwgICAgNCArKysrCiBXZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgICAgIHwgICAgNCArKystCiA0IGZpbGVzIGNoYW5nZWQs
IDExIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50
cy5jcHAKaW5kZXggNDdjNDQ0NC4uZTU1MjE1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfZXZlbnRzLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMu
Y3BwCkBAIC00OCwxMSArNDgsNiBAQCBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6SlNBYnN0cmFj
dEV2ZW50TGlzdGVuZXIoYm9vbCBodG1sKQogCiB2b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVy
OjpoYW5kbGVFdmVudChFdmVudCogZWxlLCBib29sIGlzV2luZG93RXZlbnQpCiB7Ci0jaWZkZWYg
S0pTX0RFQlVHR0VSCi0gICAgaWYgKEtKU0RlYnVnV2luOjppbnN0YW5jZSgpICYmIEtKU0RlYnVn
V2luOjppbnN0YW5jZSgpLT5pblNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0K
ICAgICBFdmVudCogZXZlbnQgPSBlbGU7CiAKICAgICBKU09iamVjdCogbGlzdGVuZXIgPSBsaXN0
ZW5lck9iaigpOwpAQCAtNjcsMTIgKzYyLDEzIEBAIHZvaWQgSlNBYnN0cmFjdEV2ZW50TGlzdGVu
ZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBlbGUsIGJvb2wgaXNXaW5kb3dFdmVudCkKICAgICBGcmFt
ZSogZnJhbWUgPSB3aW5kb3ctPmltcGwoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKCFmcmFtZS0+c2NyaXB0UHJveHkoKS0+aXNFbmFibGVkKCkp
CisgICAgS0pTUHJveHkqIHNjcmlwdFByb3h5ID0gZnJhbWUtPnNjcmlwdFByb3h5KCk7CisgICAg
aWYgKCFzY3JpcHRQcm94eS0+aXNFbmFibGVkKCkgfHwgc2NyaXB0UHJveHktPmlzUGF1c2VkKCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEpTTG9jayBsb2NrOwogCi0gICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGZyYW1lLT5zY3JpcHRQcm94eSgpLT5nbG9iYWxPYmplY3QoKTsK
KyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc2NyaXB0UHJveHktPmdsb2JhbE9i
amVjdCgpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
OwogCiAgICAgSlNWYWx1ZSogaGFuZGxlRXZlbnRGdW5jVmFsdWUgPSBsaXN0ZW5lci0+Z2V0KGV4
ZWMsICJoYW5kbGVFdmVudCIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNf
cHJveHkuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCmluZGV4IDc2OGRm
YWEuLjE4MTlhYTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAKQEAgLTQ5LDYgKzQ5LDcg
QEAgS0pTUHJveHk6OktKU1Byb3h5KEZyYW1lKiBmcmFtZSkKICAgICAsIG1faGFuZGxlckxpbmVu
bygwKQogICAgICwgbV9wcm9jZXNzaW5nVGltZXJDYWxsYmFjaygwKQogICAgICwgbV9wcm9jZXNz
aW5nSW5saW5lQ29kZSgwKQorICAgICwgbV9wYXVzZWQoZmFsc2UpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L2tqc19wcm94eS5oCmluZGV4IGFhYzU4ODAuLjdlNTE3OWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMva2pzX3Byb3h5LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJv
eHkuaApAQCAtNzAsNiArNzAsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGF0dGFjaERlYnVnZ2Vy
KEtKUzo6RGVidWdnZXIqKTsKIAorICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wgYikgeyBtX3BhdXNl
ZCA9IGI7IH0KKyAgICBib29sIGlzUGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZWQ7IH0K
KwogcHJpdmF0ZToKICAgICB2b2lkIGluaXRTY3JpcHRJZk5lZWRlZCgpCiAgICAgewpAQCAtODQs
NiArODcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIGJvb2wgbV9wcm9jZXNzaW5nVGltZXJDYWxs
YmFjazsKICAgICBib29sIG1fcHJvY2Vzc2luZ0lubGluZUNvZGU7CisgICAgYm9vbCBtX3BhdXNl
ZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBkNTZhY2Q4Li5kODVkMzBiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC03NTQsNyArNzU0LDkgQEAgSlNWYWx1ZSogRnJhbWVM
b2FkZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2Vy
R2VzdHVyZSkKIAogSlNWYWx1ZSogRnJhbWVMb2FkZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU3Ry
aW5nJiB1cmwsIGludCBiYXNlTGluZSwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7Ci0gICAgaWYg
KCFtX2ZyYW1lLT5zY3JpcHRQcm94eSgpLT5pc0VuYWJsZWQoKSkKKyAgICBLSlNQcm94eSogc2Ny
aXB0UHJveHkgPSBtX2ZyYW1lLT5zY3JpcHRQcm94eSgpOworCisgICAgaWYgKCFzY3JpcHRQcm94
eS0+aXNFbmFibGVkKCkgfHwgc2NyaXB0UHJveHktPmlzUGF1c2VkKCkpCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgYm9vbCB3YXNSdW5uaW5nU2NyaXB0ID0gbV9pc1J1bm5pbmdTY3JpcHQ7Ci0t
IAoxLjUuNC40LjUzNy5nYjc1YWEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19915</attachid>
            <date>2008-03-20 16:55:18 -0700</date>
            <delta_ts>2008-03-20 17:15:04 -0700</delta_ts>
            <desc>Block JS event handlers/javascript: URIs per-Frame</desc>
            <filename>0001-Allow-blocking-of-JS-event-handlers-javascri.patch</filename>
            <type>text/plain</type>
            <size>5488</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA3ZDIwMzBmMmVmOGRlNTM3NTI3OTQ4YmI4MWQzMDVkZTA5MTQ5MjZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDIwIE1hciAyMDA4IDE5OjI2OjAwIC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgQWxs
b3cgYmxvY2tpbmcgb2YgSlMgZXZlbnQgaGFuZGxlcnMvamF2YXNjcmlwdDogVVJJcyBwZXItRnJh
bWUKCiAgICAgICAgUGFydCBvZiBCdWcgMTcxMzM6IFNob3VsZCBzdXBwb3J0IHBhdXNpbmcgSmF2
YVNjcmlwdCBleGVjdXRpb24gd2l0aG91dAogICAgICAgIGhhbmdpbmcgdGhlIHByb2Nlc3MKCiAg
ICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTMzPgogICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NzE5NTUxPgoKICAgICAgICBUd28gbmV3IG1ldGhvZHMgYXJl
IGFkZGVkIHRvIEtKU1Byb3h5OiBzZXRQYXVzZWQgYW5kIGlzUGF1c2VkLiBXaGVuCiAgICAgICAg
c2V0UGF1c2VkKHRydWUpIGlzIGNhbGxlZCwgSlMgZXZlbnQgaGFuZGxlcnMgYXJlIGJsb2NrZWQg
YW5kCiAgICAgICAgamF2YXNjcmlwdDogVVJJcyB3aWxsIG5vdCBiZSBldmFsdWF0ZWQuCgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIGJpbmRpbmdzL2pzL2tq
c19ldmVudHMuY3BwOgogICAgICAgIChXZWJDb3JlOjpKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQpOgogICAgICAgICAgLSBSZW1vdmVkIHNvbWUgb2xkIEtKU19ERUJVR0dFUiBj
b2RlCiAgICAgICAgICAtIERvbid0IHJ1biB0aGUgaGFuZGxlciBpZiB0aGUgS0pTUHJveHkgaXMg
cGF1c2VkLgogICAgICAgICogYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcDoKICAgICAgICAoV2Vi
Q29yZTo6S0pTUHJveHk6OktKU1Byb3h5KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyLgogICAgICAg
ICogYmluZGluZ3MvanMva2pzX3Byb3h5Lmg6IEFkZGVkIG5ldyBtZXRob2RzLgogICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmV4
ZWN1dGVTY3JpcHQpOiBEb24ndCBleGVjdXRlIHRoZSBzY3JpcHQgaWYgdGhlCiAgICAgICAgS0pT
UHJveHkgaXMgcGF1c2VkLgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
fCAgIDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfZXZlbnRzLmNwcCB8ICAgMTAgKysrLS0tLS0tLQogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNf
cHJveHkuY3BwICB8ICAgIDEgKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaCAgICB8
ICAgIDQgKysrKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICB8ICAgIDQgKysr
LQogNSBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZi
OTlhZS4uMjUxZjYxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOC0wMy0yMCAgQWRhbSBSb2JlbiAgPGFy
b2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgYmxvY2tpbmcgb2YgSlMgZXZlbnQgaGFu
ZGxlcnMvamF2YXNjcmlwdDogVVJJcyBwZXItRnJhbWUKKworICAgICAgICBQYXJ0IG9mIEJ1ZyAx
NzEzMzogU2hvdWxkIHN1cHBvcnQgcGF1c2luZyBKYXZhU2NyaXB0IGV4ZWN1dGlvbiB3aXRob3V0
CisgICAgICAgIGhhbmdpbmcgdGhlIHByb2Nlc3MKKworICAgICAgICA8aHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzE5NTUxPgorCisgICAgICAgIFR3byBuZXcgbWV0aG9kcyBhcmUgYWRkZWQgdG8gS0pTUHJveHk6
IHNldFBhdXNlZCBhbmQgaXNQYXVzZWQuIFdoZW4KKyAgICAgICAgc2V0UGF1c2VkKHRydWUpIGlz
IGNhbGxlZCwgSlMgZXZlbnQgaGFuZGxlcnMgYXJlIGJsb2NrZWQgYW5kCisgICAgICAgIGphdmFz
Y3JpcHQ6IFVSSXMgd2lsbCBub3QgYmUgZXZhbHVhdGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQp
OgorICAgICAgICAgIC0gUmVtb3ZlZCBzb21lIG9sZCBLSlNfREVCVUdHRVIgY29kZQorICAgICAg
ICAgIC0gRG9uJ3QgcnVuIHRoZSBoYW5kbGVyIGlmIHRoZSBLSlNQcm94eSBpcyBwYXVzZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktK
U1Byb3h5OjpLSlNQcm94eSk6IEluaXRpYWxpemUgbmV3IG1lbWJlci4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9ranNfcHJveHkuaDogQWRkZWQgbmV3IG1ldGhvZHMuCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpleGVjdXRl
U2NyaXB0KTogRG9uJ3QgZXhlY3V0ZSB0aGUgc2NyaXB0IGlmIHRoZQorICAgICAgICBLSlNQcm94
eSBpcyBwYXVzZWQuCisKIDIwMDgtMDMtMjAgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNf
ZXZlbnRzLmNwcAppbmRleCA0N2M0NDQ0Li5lNTUyMTUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2
ZW50cy5jcHAKQEAgLTQ4LDExICs0OCw2IEBAIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpKU0Fi
c3RyYWN0RXZlbnRMaXN0ZW5lcihib29sIGh0bWwpCiAKIHZvaWQgSlNBYnN0cmFjdEV2ZW50TGlz
dGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBlbGUsIGJvb2wgaXNXaW5kb3dFdmVudCkKIHsKLSNp
ZmRlZiBLSlNfREVCVUdHRVIKLSAgICBpZiAoS0pTRGVidWdXaW46Omluc3RhbmNlKCkgJiYgS0pT
RGVidWdXaW46Omluc3RhbmNlKCktPmluU2Vzc2lvbigpKQotICAgICAgICByZXR1cm47Ci0jZW5k
aWYKLQogICAgIEV2ZW50KiBldmVudCA9IGVsZTsKIAogICAgIEpTT2JqZWN0KiBsaXN0ZW5lciA9
IGxpc3RlbmVyT2JqKCk7CkBAIC02NywxMiArNjIsMTMgQEAgdm9pZCBKU0Fic3RyYWN0RXZlbnRM
aXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGVsZSwgYm9vbCBpc1dpbmRvd0V2ZW50KQogICAg
IEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+aW1wbCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUp
CiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWZyYW1lLT5zY3JpcHRQcm94eSgpLT5pc0VuYWJs
ZWQoKSkKKyAgICBLSlNQcm94eSogc2NyaXB0UHJveHkgPSBmcmFtZS0+c2NyaXB0UHJveHkoKTsK
KyAgICBpZiAoIXNjcmlwdFByb3h5LT5pc0VuYWJsZWQoKSB8fCBzY3JpcHRQcm94eS0+aXNQYXVz
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNMb2NrIGxvY2s7CiAKLSAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZnJhbWUtPnNjcmlwdFByb3h5KCktPmdsb2JhbE9iamVj
dCgpOworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY3JpcHRQcm94eS0+Z2xv
YmFsT2JqZWN0KCk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxF
eGVjKCk7CiAKICAgICBKU1ZhbHVlKiBoYW5kbGVFdmVudEZ1bmNWYWx1ZSA9IGxpc3RlbmVyLT5n
ZXQoZXhlYywgImhhbmRsZUV2ZW50Iik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L2tqc19wcm94eS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAKaW5kZXgg
NzY4ZGZhYS4uMTgxOWFhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJv
eHkuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcApAQCAtNDksNiAr
NDksNyBAQCBLSlNQcm94eTo6S0pTUHJveHkoRnJhbWUqIGZyYW1lKQogICAgICwgbV9oYW5kbGVy
TGluZW5vKDApCiAgICAgLCBtX3Byb2Nlc3NpbmdUaW1lckNhbGxiYWNrKDApCiAgICAgLCBtX3By
b2Nlc3NpbmdJbmxpbmVDb2RlKDApCisgICAgLCBtX3BhdXNlZChmYWxzZSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMva2pzX3Byb3h5LmgKaW5kZXggYWFjNTg4MC4uN2U1MTc5ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL2tq
c19wcm94eS5oCkBAIC03MCw2ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXR0YWNoRGVi
dWdnZXIoS0pTOjpEZWJ1Z2dlciopOwogCisgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCBiKSB7IG1f
cGF1c2VkID0gYjsgfQorICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdCB7IHJldHVybiBtX3BhdXNl
ZDsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgaW5pdFNjcmlwdElmTmVlZGVkKCkKICAgICB7CkBA
IC04NCw2ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBtX3Byb2Nlc3NpbmdUaW1l
ckNhbGxiYWNrOwogICAgIGJvb2wgbV9wcm9jZXNzaW5nSW5saW5lQ29kZTsKKyAgICBib29sIG1f
cGF1c2VkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGQwODQxMWMuLmE4Nzcx
ZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTc1Niw3ICs3NTYsOSBAQCBKU1ZhbHVlKiBG
cmFtZUxvYWRlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3Jj
ZVVzZXJHZXN0dXJlKQogCiBKU1ZhbHVlKiBGcmFtZUxvYWRlcjo6ZXhlY3V0ZVNjcmlwdChjb25z
dCBTdHJpbmcmIHVybCwgaW50IGJhc2VMaW5lLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkKIHsKLSAg
ICBpZiAoIW1fZnJhbWUtPnNjcmlwdFByb3h5KCktPmlzRW5hYmxlZCgpKQorICAgIEtKU1Byb3h5
KiBzY3JpcHRQcm94eSA9IG1fZnJhbWUtPnNjcmlwdFByb3h5KCk7CisKKyAgICBpZiAoIXNjcmlw
dFByb3h5LT5pc0VuYWJsZWQoKSB8fCBzY3JpcHRQcm94eS0+aXNQYXVzZWQoKSkKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBib29sIHdhc1J1bm5pbmdTY3JpcHQgPSBtX2lzUnVubmluZ1Njcmlw
dDsKLS0gCjEuNS40LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19916</attachid>
            <date>2008-03-20 16:55:40 -0700</date>
            <delta_ts>2008-03-20 17:15:44 -0700</delta_ts>
            <desc>Pause callOnMainThread callbacks</desc>
            <filename>0002-Allow-pausing-of-callOnMainThread-callbacks.patch</filename>
            <type>text/plain</type>
            <size>3590</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA2MWY5MzI1OTYwYmViMjRmY2IyZDNjOGE3ZmJiNmZhZWNhYTM4Nzk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDIwIE1hciAyMDA4IDE5OjMyOjU4IC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgQWxs
b3cgcGF1c2luZyBvZiBjYWxsT25NYWluVGhyZWFkIGNhbGxiYWNrcwoKICAgICAgICBQYXJ0IG9m
IEJ1ZyAxNzEzMzogU2hvdWxkIHN1cHBvcnQgcGF1c2luZyBKYXZhU2NyaXB0IGV4ZWN1dGlvbiB3
aXRob3V0CiAgICAgICAgaGFuZ2luZyB0aGUgcHJvY2VzcwoKICAgICAgICA8aHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzM+CiAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MTk1NTE+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAq
IHBsYXRmb3JtL01haW5UaHJlYWQuY3BwOgogICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaEZ1bmN0
aW9uc0Zyb21NYWluVGhyZWFkKTogSWYgY2FsbGJhY2tzIGFyZSBwYXVzZWQsCiAgICAgICAgZG9u
J3QgZGlzcGF0Y2ggdGhlIGZ1bmN0aW9ucy4KICAgICAgICAoV2ViQ29yZTo6c2V0TWFpblRocmVh
ZENhbGxiYWNrc1BhdXNlZCk6IEFkZGVkLiBJZiB3ZSdyZSBiZWluZwogICAgICAgIHVucGF1c2Vk
LCBjYWxsIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQgc28gdGhhdCBhbnkK
ICAgICAgICBxdWV1ZWQgY2FsbGJhY2tzIHdpbGwgZ2V0IGRpc3BhdGNoZWQgaW4gdGhlIG5lYXIg
ZnV0dXJlLgogICAgICAgICogcGxhdGZvcm0vTWFpblRocmVhZC5oOgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL01haW5UaHJlYWQuY3BwIHwgICAxNiArKysrKysrKysrKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL01haW5UaHJlYWQuaCAgIHwgICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDM3IGlu
c2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNTFmNjEyLi44MTY1ZDkyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1
IEBACiAyMDA4LTAzLTIwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAorICAgICAg
ICBBbGxvdyBwYXVzaW5nIG9mIGNhbGxPbk1haW5UaHJlYWQgY2FsbGJhY2tzCisKKyAgICAgICAg
UGFydCBvZiBCdWcgMTcxMzM6IFNob3VsZCBzdXBwb3J0IHBhdXNpbmcgSmF2YVNjcmlwdCBleGVj
dXRpb24gd2l0aG91dAorICAgICAgICBoYW5naW5nIHRoZSBwcm9jZXNzCisKKyAgICAgICAgPGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTMzPgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTcxOTU1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCk6IElmIGNhbGxiYWNrcyBhcmUgcGF1
c2VkLAorICAgICAgICBkb24ndCBkaXNwYXRjaCB0aGUgZnVuY3Rpb25zLgorICAgICAgICAoV2Vi
Q29yZTo6c2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZCk6IEFkZGVkLiBJZiB3ZSdyZSBiZWlu
ZworICAgICAgICB1bnBhdXNlZCwgY2FsbCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWlu
VGhyZWFkIHNvIHRoYXQgYW55CisgICAgICAgIHF1ZXVlZCBjYWxsYmFja3Mgd2lsbCBnZXQgZGlz
cGF0Y2hlZCBpbiB0aGUgbmVhciBmdXR1cmUuCisgICAgICAgICogcGxhdGZvcm0vTWFpblRocmVh
ZC5oOgorCisyMDA4LTAzLTIwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKwogICAg
ICAgICBBbGxvdyBibG9ja2luZyBvZiBKUyBldmVudCBoYW5kbGVycy9qYXZhc2NyaXB0OiBVUklz
IHBlci1GcmFtZQogCiAgICAgICAgIFBhcnQgb2YgQnVnIDE3MTMzOiBTaG91bGQgc3VwcG9ydCBw
YXVzaW5nIEphdmFTY3JpcHQgZXhlY3V0aW9uIHdpdGhvdXQKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vTWFpblRocmVhZC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuY3Bw
CmluZGV4IGM0NDM5ZWIuLmU4NDU2YmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTWFp
blRocmVhZC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkLmNwcApAQCAtNDIs
NiArNDIsOCBAQCBzdHJ1Y3QgRnVuY3Rpb25XaXRoQ29udGV4dCB7CiAKIHR5cGVkZWYgVmVjdG9y
PEZ1bmN0aW9uV2l0aENvbnRleHQ+IEZ1bmN0aW9uUXVldWU7CiAKK3N0YXRpYyBib29sIGNhbGxi
YWNrc1BhdXNlZDsKKwogc3RhdGljIE11dGV4JiBmdW5jdGlvblF1ZXVlTXV0ZXgoKQogewogICAg
IHN0YXRpYyBNdXRleCBzdGF0aWNGdW5jdGlvblF1ZXVlTXV0ZXg7CkBAIC01Niw2ICs1OCw5IEBA
IHN0YXRpYyBGdW5jdGlvblF1ZXVlJiBmdW5jdGlvblF1ZXVlKCkKIAogdm9pZCBkaXNwYXRjaEZ1
bmN0aW9uc0Zyb21NYWluVGhyZWFkKCkKIHsKKyAgICBpZiAoY2FsbGJhY2tzUGF1c2VkKQorICAg
ICAgICByZXR1cm47CisKICAgICBGdW5jdGlvblF1ZXVlIHF1ZXVlQ29weTsKICAgICB7CiAgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihmdW5jdGlvblF1ZXVlTXV0ZXgoKSk7CkBAIC03OSw0ICs4
NCwxNSBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlv
biwgdm9pZCogY29udGV4dCkKICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhy
ZWFkKCk7CiB9CiAKK3ZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29sIHBhdXNl
ZCkKK3sKKyAgICBpZiAoY2FsbGJhY2tzUGF1c2VkID09IHBhdXNlZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgY2FsbGJhY2tzUGF1c2VkID0gcGF1c2VkOworCisgICAgaWYgKCFjYWxsYmFja3NQ
YXVzZWQpCisgICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9NYWluVGhyZWFkLmggYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuaAppbmRleCA1NDkw
NzEzLi5kNDJjOTAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWQuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB0eXBlZGVmIHZvaWQgTWFpblRocmVhZEZ1bmN0aW9uKHZvaWQqKTsK
IAogdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiosIHZvaWQqIGNvbnRl
eHQpOwordm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKTsKIAog
dm9pZCBpbml0aWFsaXplVGhyZWFkaW5nQW5kTWFpblRocmVhZCgpOwogCi0tIAoxLjUuNC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19917</attachid>
            <date>2008-03-20 16:56:09 -0700</date>
            <delta_ts>2008-03-20 17:16:02 -0700</delta_ts>
            <desc>Pause/block JS execution from plugins</desc>
            <filename>0003-Allow-pausing-blocking-of-JS-execution-by-pl.patch</filename>
            <type>text/plain</type>
            <size>5058</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBjZDFmMDVhNTY5ZTk5OTRiOGMzYTRkOGE5NDIxMTViNjBlNTE3YzZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDIwIE1hciAyMDA4IDE5OjQ5OjQyIC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgQWxs
b3cgcGF1c2luZy9ibG9ja2luZyBvZiBKUyBleGVjdXRpb24gYnkgcGx1Z2lucwoKICAgICAgICBQ
YXJ0IG9mIEJ1ZyAxNzEzMzogU2hvdWxkIHN1cHBvcnQgcGF1c2luZyBKYXZhU2NyaXB0IGV4ZWN1
dGlvbiB3aXRob3V0CiAgICAgICAgaGFuZ2luZyB0aGUgcHJvY2VzcwoKICAgICAgICA8aHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzM+CiAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU3MTk1NTE+CgogICAgICAgIFRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgTWFjLCB3
aGljaCBkb2Vzbid0IHVzZSB0aGUgc2hhcmVkIFBsdWdpblZpZXcKICAgICAgICBjb2RlLgoKICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBkb2Vzbid0IHByZXZlbnQgcGx1Z2lucyBmcm9tIGV4
ZWN1dGluZyBKUyB2aWEgYW4KICAgICAgICBOUE9iamVjdCB0aGV5J3ZlIGFscmVhZHkgZ290dGVu
IGhvbGQgb2YuIEl0IGp1c3QgYmxvY2tzIG9idGFpbmluZyBuZXcKICAgICAgICBOUE9iamVjdHMg
YW5kIHBhdXNlcyBhbnkgcmVxdWVzdHMgdG8gZXZhbHVhdGUgamF2YXNjcmlwdDogVVJJcy4gVGhp
cwogICAgICAgIGlzIHByb2JhYmx5IGdvb2QgZW5vdWdoIGZvciBub3cgYmVjYXVzZSBtb3N0IHBs
dWdpbnMgc2VlbSB0byBhbHdheXMKICAgICAgICBvYnRhaW4gdGhlIFdpbmRvdyBvYmplY3QgZWFj
aCB0aW1lIHRoZXkgd2FudCB0byBleGVjdXRlIEpTLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpnZXRWYWx1ZSk6IFJldHVybiBhbiBlcnJvciBpZiBKUyBpcyBw
YXVzZWQuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldEphdmFTY3JpcHRQYXVzZWQp
OiBTdG9wIHRoZSByZXF1ZXN0IHRpbWVyIGlmCiAgICAgICAgd2UncmUgcGF1c2luZywgYW5kIHJl
c3VtZSBpdCBpZiB3ZSdyZSB1bnBhdXNpbmcuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OlBsdWdpblZpZXcpOiBJbml0aWFsaXplIG5ldyBtZW1iZXJzLgogICAgICAgICogcGx1Z2lucy9Q
bHVnaW5WaWV3Lmg6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgIHwgICAyOCAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAgfCAgIDE4ICsrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
aCAgIHwgICAgNSArKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAwIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODE2NWQ5Mi4uNWVmZWQ3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMyBAQAogMjAwOC0wMy0yMCAg
QWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQWxsb3cgcGF1c2luZy9i
bG9ja2luZyBvZiBKUyBleGVjdXRpb24gYnkgcGx1Z2lucworCisgICAgICAgIFBhcnQgb2YgQnVn
IDE3MTMzOiBTaG91bGQgc3VwcG9ydCBwYXVzaW5nIEphdmFTY3JpcHQgZXhlY3V0aW9uIHdpdGhv
dXQKKyAgICAgICAgaGFuZ2luZyB0aGUgcHJvY2VzcworCisgICAgICAgIDxodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEzMz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MTk1NTE+CisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2Vzbid0IGFmZmVjdCBNYWMsIHdoaWNo
IGRvZXNuJ3QgdXNlIHRoZSBzaGFyZWQgUGx1Z2luVmlldworICAgICAgICBjb2RlLgorCisgICAg
ICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgcHJldmVudCBwbHVnaW5zIGZyb20gZXhl
Y3V0aW5nIEpTIHZpYSBhbgorICAgICAgICBOUE9iamVjdCB0aGV5J3ZlIGFscmVhZHkgZ290dGVu
IGhvbGQgb2YuIEl0IGp1c3QgYmxvY2tzIG9idGFpbmluZyBuZXcKKyAgICAgICAgTlBPYmplY3Rz
IGFuZCBwYXVzZXMgYW55IHJlcXVlc3RzIHRvIGV2YWx1YXRlIGphdmFzY3JpcHQ6IFVSSXMuIFRo
aXMKKyAgICAgICAgaXMgcHJvYmFibHkgZ29vZCBlbm91Z2ggZm9yIG5vdyBiZWNhdXNlIG1vc3Qg
cGx1Z2lucyBzZWVtIHRvIGFsd2F5cworICAgICAgICBvYnRhaW4gdGhlIFdpbmRvdyBvYmplY3Qg
ZWFjaCB0aW1lIHRoZXkgd2FudCB0byBleGVjdXRlIEpTLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldFZhbHVlKTogUmV0dXJuIGFuIGVycm9yIGlm
IEpTIGlzIHBhdXNlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldEphdmFTY3Jp
cHRQYXVzZWQpOiBTdG9wIHRoZSByZXF1ZXN0IHRpbWVyIGlmCisgICAgICAgIHdlJ3JlIHBhdXNp
bmcsIGFuZCByZXN1bWUgaXQgaWYgd2UncmUgdW5wYXVzaW5nLgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6IEluaXRpYWxpemUgbmV3IG1lbWJlcnMuCisgICAgICAg
ICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisKKzIwMDgtMDMtMjAgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgorCiAgICAgICAgIEFsbG93IHBhdXNpbmcgb2YgY2FsbE9uTWFpblRocmVh
ZCBjYWxsYmFja3MKIAogICAgICAgICBQYXJ0IG9mIEJ1ZyAxNzEzMzogU2hvdWxkIHN1cHBvcnQg
cGF1c2luZyBKYXZhU2NyaXB0IGV4ZWN1dGlvbiB3aXRob3V0CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
aW5kZXggNTQ1ZTQzYi4uNGRkZTQyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNDEyLDYg
KzQxMiw5IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCiAK
IE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQq
IHZhbHVlKQogeworICAgIGlmIChtX2lzSmF2YVNjcmlwdFBhdXNlZCkKKyAgICAgICAgcmV0dXJu
IE5QRVJSX0dFTkVSSUNfRVJST1I7CisKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIGNhc2UgTlBOVldpbmRvd05QT2JqZWN0
OiB7CkBAIC00OTksNiArNTAyLDE5IEBAIGJvb2wgUGx1Z2luVmlldzo6YXJlUG9wdXBzQWxsb3dl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFBsdWdpblZpZXc6OnNldEph
dmFTY3JpcHRQYXVzZWQoYm9vbCBwYXVzZWQpCit7CisgICAgaWYgKG1faXNKYXZhU2NyaXB0UGF1
c2VkID09IHBhdXNlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNKYXZhU2NyaXB0UGF1c2Vk
ID0gcGF1c2VkOworCisgICAgaWYgKG1faXNKYXZhU2NyaXB0UGF1c2VkKSB7CisgICAgICAgIG1f
cmVxdWVzdFRpbWVyV2FzQWN0aXZlID0gbV9yZXF1ZXN0VGltZXIuaXNBY3RpdmUoKTsKKyAgICAg
ICAgbV9yZXF1ZXN0VGltZXIuc3RvcCgpOworICAgIH0gZWxzZSBpZiAobV9yZXF1ZXN0VGltZXJX
YXNBY3RpdmUpCisgICAgICAgIG1fcmVxdWVzdFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwog
UGFzc1JlZlB0cjxLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZT4gUGx1Z2luVmlldzo6YmluZGluZ0lu
c3RhbmNlKCkKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTU4NSw2ICs2
MDEsOCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogI2VuZGlmCiAgICAgLCBtX2xvYWRNYW51
YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgwKQorICAgICwgbV9pc0ph
dmFTY3JpcHRQYXVzZWQoZmFsc2UpCisgICAgLCBtX3JlcXVlc3RUaW1lcldhc0FjdGl2ZShmYWxz
ZSkKIHsKICAgICBpZiAoIW1fcGx1Z2luKSB7CiAgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3Rh
dHVzQ2FuTm90RmluZFBsdWdpbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDI1M2ExMjguLjVmNjMy
NmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTEwLDYgKzExMCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICBib29sIGFyZVBvcHVwc0FsbG93ZWQoKSBjb25zdDsKIAorICAgICAg
ICB2b2lkIHNldEphdmFTY3JpcHRQYXVzZWQoYm9vbCk7CisKICAgICAgICAgdm9pZCBkaXNjb25u
ZWN0U3RyZWFtKFBsdWdpblN0cmVhbSopOwogICAgICAgICB2b2lkIHN0cmVhbURpZEZpbmlzaExv
YWRpbmcoUGx1Z2luU3RyZWFtKiBzdHJlYW0pIHsgZGlzY29ubmVjdFN0cmVhbShzdHJlYW0pOyB9
CiAKQEAgLTIxNCw2ICsyMTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9sb2FkTWFudWFsbHk7CiAgICAgICAgIFJlZlB0cjxQbHVnaW5TdHJlYW0+IG1fbWFudWFsU3Ry
ZWFtOwogCisgICAgICAgIGJvb2wgbV9pc0phdmFTY3JpcHRQYXVzZWQ7CisgICAgICAgIGJvb2wg
bV9yZXF1ZXN0VGltZXJXYXNBY3RpdmU7CisKICAgICAgICAgc3RhdGljIFBsdWdpblZpZXcqIHNf
Y3VycmVudFBsdWdpblZpZXc7CiAgICAgfTsKIAotLSAKMS41LjQuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19926</attachid>
            <date>2008-03-21 08:03:54 -0700</date>
            <delta_ts>2008-03-21 09:29:06 -0700</delta_ts>
            <desc>Don&apos;t allow newly-scheduled plugin requests to be serviced while JS is paused</desc>
            <filename>0001-Don-t-allow-any-newly-scheduled-plugin-reque.patch</filename>
            <type>text/plain</type>
            <size>4377</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBkMzI3MDExYTU3Mzg0YzY0YmRjMTQ0NTM4OGI1ZjgxZWNhN2FlMTgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDIxIE1hciAyMDA4IDExOjAzOjM4IC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgRG9u
J3QgYWxsb3cgYW55IG5ld2x5LXNjaGVkdWxlZCBwbHVnaW4gcmVxdWVzdHMgdG8gYmUgc2Vydmlj
ZWQgd2hlbiBKUyBpcyBwYXVzZWQKCiAgICAgICAgVGhpcyBpcyBhIGZvbGxvd3VwIHRvIHIzMTE5
OS4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICogcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcDoKICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cmVxdWVzdFRp
bWVyRmlyZWQpOiBBZGRlZCBhbiBhc3NlcnRpb24gdGhhdCBKUwogICAgICAgIGlzIG5vdCBwYXVz
ZWQuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNjaGVkdWxlUmVxdWVzdCk6IERvbid0
IHN0YXJ0IHRoZSByZXF1ZXN0IHRpbWVyCiAgICAgICAgaWYgSlMgaXMgcGF1c2VkLiBUaGlzIGlz
IHRoZSBidWcgZml4LgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRKYXZhU2NyaXB0
UGF1c2VkKTogUmVwbGFjZWQgdGhlIHVzZSBvZgogICAgICAgIG1fcmVxdWVzdFRpbWVyV2FzQWN0
aXZlIHdpdGggYSBjaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBhbnkgcGVuZGluZwogICAgICAgIHJl
cXVlc3RzLiBtX3JlcXVlc3RUaW1lcldhc0FjdGl2ZSB3b3VsZCBub3QgYmUgYWNjdXJhdGUgaWYg
YSBuZXcKICAgICAgICByZXF1ZXN0IGhhZCBiZWVuIHNjaGVkdWxlZCB3aGlsZSBKUyB3YXMgcGF1
c2VkLgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KTogUmVtb3ZlZCBp
bml0aWFsaXphdGlvbiBvZgogICAgICAgIG1fcmVxdWVzdFRpbWVyV2FzQWN0aXZlLgogICAgICAg
ICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6IFJlbW92ZWQgbV9yZXF1ZXN0VGltZXJXYXNBY3RpdmUu
Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysr
KysrKysrKysKIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCB8ICAgMTEgKysrKysrLS0t
LS0KIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggICB8ICAgIDEgLQogMyBmaWxlcyBjaGFu
Z2VkLCAyNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE3YzVlZi4uMjU2YzBkNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAwOC0wMy0yMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+
CisKKyAgICAgICAgRG9uJ3QgYWxsb3cgYW55IG5ld2x5LXNjaGVkdWxlZCBwbHVnaW4gcmVxdWVz
dHMgdG8gYmUgc2VydmljZWQgd2hlbiBKUyBpcyBwYXVzZWQKKworICAgICAgICBUaGlzIGlzIGEg
Zm9sbG93dXAgdG8gcjMxMTk5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnJlcXVlc3RUaW1lckZpcmVkKTogQWRkZWQgYW4gYXNzZXJ0aW9uIHRoYXQg
SlMKKyAgICAgICAgaXMgbm90IHBhdXNlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnNjaGVkdWxlUmVxdWVzdCk6IERvbid0IHN0YXJ0IHRoZSByZXF1ZXN0IHRpbWVyCisgICAgICAg
IGlmIEpTIGlzIHBhdXNlZC4gVGhpcyBpcyB0aGUgYnVnIGZpeC4KKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnNldEphdmFTY3JpcHRQYXVzZWQpOiBSZXBsYWNlZCB0aGUgdXNlIG9mCisg
ICAgICAgIG1fcmVxdWVzdFRpbWVyV2FzQWN0aXZlIHdpdGggYSBjaGVjayB0byBzZWUgaWYgd2Ug
aGF2ZSBhbnkgcGVuZGluZworICAgICAgICByZXF1ZXN0cy4gbV9yZXF1ZXN0VGltZXJXYXNBY3Rp
dmUgd291bGQgbm90IGJlIGFjY3VyYXRlIGlmIGEgbmV3CisgICAgICAgIHJlcXVlc3QgaGFkIGJl
ZW4gc2NoZWR1bGVkIHdoaWxlIEpTIHdhcyBwYXVzZWQuCisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpQbHVnaW5WaWV3KTogUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZgorICAgICAgICBt
X3JlcXVlc3RUaW1lcldhc0FjdGl2ZS4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDog
UmVtb3ZlZCBtX3JlcXVlc3RUaW1lcldhc0FjdGl2ZS4KKwogMjAwOC0wMy0yMCAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJs
c3Nvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA4ZDU3NmRlLi5mNTU1M2FmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCkBAIC0yNjUsNiArMjY1LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpyZXF1
ZXN0VGltZXJGaXJlZChUaW1lcjxQbHVnaW5WaWV3PiogdGltZXIpCiB7CiAgICAgQVNTRVJUKHRp
bWVyID09ICZtX3JlcXVlc3RUaW1lcik7CiAgICAgQVNTRVJUKG1fcmVxdWVzdHMuc2l6ZSgpID4g
MCk7CisgICAgQVNTRVJUKCFtX2lzSmF2YVNjcmlwdFBhdXNlZCk7CiAKICAgICBQbHVnaW5SZXF1
ZXN0KiByZXF1ZXN0ID0gbV9yZXF1ZXN0c1swXTsKICAgICBtX3JlcXVlc3RzLnJlbW92ZSgwKTsK
QEAgLTI4MSw3ICsyODIsOSBAQCB2b2lkIFBsdWdpblZpZXc6OnJlcXVlc3RUaW1lckZpcmVkKFRp
bWVyPFBsdWdpblZpZXc+KiB0aW1lcikKIHZvaWQgUGx1Z2luVmlldzo6c2NoZWR1bGVSZXF1ZXN0
KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgbV9yZXF1ZXN0cy5hcHBlbmQocmVxdWVz
dCk7Ci0gICAgbV9yZXF1ZXN0VGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgaWYgKCFtX2lz
SmF2YVNjcmlwdFBhdXNlZCkKKyAgICAgICAgbV9yZXF1ZXN0VGltZXIuc3RhcnRPbmVTaG90KDAp
OwogfQogCiBOUEVycm9yIFBsdWdpblZpZXc6OmxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYg
ZnJhbWVMb2FkUmVxdWVzdCwgYm9vbCBzZW5kTm90aWZpY2F0aW9uLCB2b2lkKiBub3RpZnlEYXRh
KQpAQCAtNDg4LDEwICs0OTEsOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEphdmFTY3JpcHRQYXVz
ZWQoYm9vbCBwYXVzZWQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2lzSmF2YVNjcmlwdFBhdXNl
ZCA9IHBhdXNlZDsKIAotICAgIGlmIChtX2lzSmF2YVNjcmlwdFBhdXNlZCkgewotICAgICAgICBt
X3JlcXVlc3RUaW1lcldhc0FjdGl2ZSA9IG1fcmVxdWVzdFRpbWVyLmlzQWN0aXZlKCk7CisgICAg
aWYgKG1faXNKYXZhU2NyaXB0UGF1c2VkKQogICAgICAgICBtX3JlcXVlc3RUaW1lci5zdG9wKCk7
Ci0gICAgfSBlbHNlIGlmIChtX3JlcXVlc3RUaW1lcldhc0FjdGl2ZSkKKyAgICBlbHNlIGlmICgh
bV9yZXF1ZXN0cy5pc0VtcHR5KCkpCiAgICAgICAgIG1fcmVxdWVzdFRpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKIH0KIApAQCAtNTgyLDcgKzU4NCw2IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJh
bWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAg
ICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgw
KQogICAgICwgbV9pc0phdmFTY3JpcHRQYXVzZWQoZmFsc2UpCi0gICAgLCBtX3JlcXVlc3RUaW1l
cldhc0FjdGl2ZShmYWxzZSkKIHsKICAgICBpZiAoIW1fcGx1Z2luKSB7CiAgICAgICAgIG1fc3Rh
dHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4
IGY4MTljNTQuLjQ2Yzc3ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMjM2LDcgKzIzNiw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gbV9tYW51
YWxTdHJlYW07CiAKICAgICAgICAgYm9vbCBtX2lzSmF2YVNjcmlwdFBhdXNlZDsKLSAgICAgICAg
Ym9vbCBtX3JlcXVlc3RUaW1lcldhc0FjdGl2ZTsKIAogICAgICAgICBzdGF0aWMgUGx1Z2luVmll
dyogc19jdXJyZW50UGx1Z2luVmlldzsKICAgICB9OwotLSAKMS41LjQuMwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>