<?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>27703</bug_id>
          
          <creation_ts>2009-07-27 03:07:20 -0700</creation_ts>
          <short_desc>[V8] Teach ScheduledAction::execute about isolated worlds</short_desc>
          <delta_ts>2010-01-13 21:32:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>27533</dependson>
    
    <dependson>27701</dependson>
          <blocked>27826</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aa</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134877</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-27 03:07:20 -0700</bug_when>
    <thetext>I&apos;ve finished my current audit of the bindings for isolated world issues.  The last thing I found in this class is ScheduledAction::execute, which needs to know how to call back its m_function in the proper world.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134878</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-27 03:09:21 -0700</bug_when>
    <thetext>We want OwnHandle from 27533 and the new V8Proxy::context(Frame*) from 27701 before implementing this fix.  The fix looks really.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135290</commentid>
    <comment_count>2</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-07-28 11:27:42 -0700</bug_when>
    <thetext>Note: I would prefer that setTimeout(&lt;string&gt;) from an isolated world executes in the isolated world.

My view on the situation is:
- eval(), setTimeout(&lt;string&gt;): execute in isolated world
- append script tag, location.href = &quot;javascript:&quot;: execute in main world</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135537</commentid>
    <comment_count>3</comment_count>
      <attachid>33705</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-29 02:31:05 -0700</bug_when>
    <thetext>Created attachment 33705
Work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136586</commentid>
    <comment_count>4</comment_count>
      <attachid>33959</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-02 23:28:58 -0700</bug_when>
    <thetext>Created attachment 33959
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136587</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-02 23:30:03 -0700</bug_when>
    <thetext>Sorry this took so long.  I ran into a nasty test_shell bug that confused me for a long time.  We&apos;ll need to land http://codereview.chromium.org/159782 before these tests will pass downstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136591</commentid>
    <comment_count>6</comment_count>
      <attachid>33959</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-03 00:13:57 -0700</bug_when>
    <thetext>Comment on attachment 33959
Patch v1

The test_shell change downstream is wrong.  I&apos;m not sure how to get the testing harness to run the tests properly....  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136727</commentid>
    <comment_count>7</comment_count>
      <attachid>33993</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-03 11:50:56 -0700</bug_when>
    <thetext>Created attachment 33993
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136729</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-03 11:56:05 -0700</bug_when>
    <thetext>The new plan is to change test_shell to evaluate the isolated script immediately instead of using the work_queue_.  That simplifies life dramatically.  I&apos;ve changed the patch to rename &quot;queueScriptInIsolatedWorld&quot; to &quot;evaluateScriptInIsolateWorld&quot; to indicate that this call is now synchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137239</commentid>
    <comment_count>9</comment_count>
      <attachid>33993</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-04 19:45:44 -0700</bug_when>
    <thetext>Comment on attachment 33993
Patch v1

These are two separate changes.  1. to change queue to evaluate.  2.  to fix ScheduledAction.

I don&apos;t really know what this does, but I trust you do:
 51     m_context.makeWeak();

These changes look both fine, but should be split into two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137241</commentid>
    <comment_count>10</comment_count>
      <attachid>34113</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-04 20:14:49 -0700</bug_when>
    <thetext>Created attachment 34113
Rename queueScriptInIsolatedWorld


---
 18 files changed, 47 insertions(+), 17 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137242</commentid>
    <comment_count>11</comment_count>
      <attachid>34114</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-04 20:14:54 -0700</bug_when>
    <thetext>Created attachment 34114
Scheduled action


---
 10 files changed, 129 insertions(+), 18 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137245</commentid>
    <comment_count>12</comment_count>
      <attachid>34113</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-04 21:20:33 -0700</bug_when>
    <thetext>Comment on attachment 34113
Rename queueScriptInIsolatedWorld

LGTM.  I assume this has a corresponding change in Chromium&apos;s test_shell?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137246</commentid>
    <comment_count>13</comment_count>
      <attachid>34114</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-04 21:21:50 -0700</bug_when>
    <thetext>Comment on attachment 34114
Scheduled action

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137257</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-04 23:16:52 -0700</bug_when>
    <thetext>Assigned for landing.  Landing this is a tricky dance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137260</commentid>
    <comment_count>15</comment_count>
      <attachid>34113</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-04 23:57:38 -0700</bug_when>
    <thetext>Comment on attachment 34113
Rename queueScriptInIsolatedWorld

Landed the first patch in http://trac.webkit.org/changeset/46794</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137544</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-06 01:18:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/46838</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146474</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-11 00:26:31 -0700</bug_when>
    <thetext>I had to back this out a while ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146481</commentid>
    <comment_count>18</comment_count>
      <attachid>39414</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-11 01:11:32 -0700</bug_when>
    <thetext>Created attachment 39414
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146810</commentid>
    <comment_count>19</comment_count>
      <attachid>39414</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-11 16:55:43 -0700</bug_when>
    <thetext>Comment on attachment 39414
Patch v1

I didn&apos;t know this until recently, but &quot;explicit&quot; is only needed for single-argument constructors:
 50         explicit ScheduledAction(v8::Handle&lt;v8::Context&gt; context, const WebCore::String&amp; code, const KURL&amp; url = KURL())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146814</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-11 17:01:29 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I didn&apos;t know this until recently, but &quot;explicit&quot; is only needed for
&gt; single-argument constructors:

Yeah, I actually removed the keyword in an earlier iteration of this patch, but must have lost that diff at some point.  I can remove it on landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147562</commentid>
    <comment_count>21</comment_count>
      <attachid>39414</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-09-16 10:54:40 -0700</bug_when>
    <thetext>Comment on attachment 39414
Patch v1

r=me, with nits.

&gt; +function done() {

Brace on new line here and on.

&gt; +  if (window.layoutTestController)
&gt; +    layoutTestController.notifyDone();

4 space indent here and on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147564</commentid>
    <comment_count>22</comment_count>
      <attachid>39414</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-16 11:04:08 -0700</bug_when>
    <thetext>Comment on attachment 39414
Patch v1

Marking cq- so I can fix the nits.  Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147741</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-16 23:25:25 -0700</bug_when>
    <thetext>Committed r48455: &lt;http://trac.webkit.org/changeset/48455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147886</commentid>
    <comment_count>24</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-09-17 12:16:29 -0700</bug_when>
    <thetext>Patch partially rolled out in http://trac.webkit.org/changeset/48483, after we started seeing crashes in V8Proxy::retrieveFrameForEnteredContext(), like these:

chrome_23a0000!v8::internal::Context::global_context+0x3f [c:\b\slave\chromium-rel-xp\build\src\v8\src\contexts.cc @ 59]
chrome_23a0000!v8::internal::Context::global_proxy+0x5 [c:\b\slave\chromium-rel-xp\build\src\v8\src\contexts.cc @ 66]
chrome_23a0000!v8::Context::Global+0x52 [c:\b\slave\chromium-rel-xp\build\src\v8\src\api.cc @ 2746]
chrome_23a0000!WebCore::V8Proxy::retrieveWindow+0x13 [c:\b\slave\chromium-rel-xp\build\src\third_party\webkit\webcore\bindings\v8\v8proxy.cpp @ 504]
chrome_23a0000!WebCore::V8Proxy::retrieveFrameForEnteredContext+0x22 [c:\b\slave\chromium-rel-xp\build\src\third_party\webkit\webcore\bindings\v8\v8proxy.cpp @ 526]
chrome_23a0000!WebCore::ScriptController::processingUserGesture+0xe [c:\b\slave\chromium-rel-xp\build\src\third_party\webkit\webcore\bindings\v8\scriptcontroller.cpp @ 138]
chrome_23a0000!WebCore::FrameLoader::requestFrame+0xf6 [c:\b\slave\chromium-rel-xp\build\src\third_party\webkit\webcore\loader\frameloader.cpp @ 432]
chrome_23a0000!WebCore::HTMLFrameElementBase::openURL+0x8f [c:\b\slave\chromium-rel-xp\build\src\third_party\webkit\webcore\html\htmlframeelementbase.cpp @ 106]
chrome_23a0000!WebCore::HTMLFrameElementBase::setLocation+0xab [c:\b\slave\chromium-rel-xp\build\src\third_party\webkit\webcore\html\htmlframeelementbase.cpp @ 212]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147914</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-17 13:22:07 -0700</bug_when>
    <thetext>Is there some way I can reproduce the crashes locally?  The LayoutTests seem to run fine on the buildbot...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147922</commentid>
    <comment_count>26</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-09-17 13:35:24 -0700</bug_when>
    <thetext>Here&apos;s a sample (copy/paste from chrome crash bot):

http://vietnamnet.vn/chinhtri/ - (details) (dump) (trace)
http://register.paltalk.com/reg/landing_pagc123.jsp - (details) (dump) (trace)
http://www.elsuperpolvo.com/ - (details) (dump) (trace)
http://www.time.com/time/politics - (details) (trace)
http://elgarbanzo.com/ - (details) (trace)
http://cercalavoro.monster.it/ - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1111/netbook08.htm - (details) (dump) (trace)
http://www.paltalk.com/search/webapp/search/groups/SearchGroups.wmt - (details) (trace)
http://home.napster.com/collection_sync.html - (details) (trace)
http://www.peachjohn.co.jp/shop/window.php - (details) (trace)
http://barbie.everythinggirl.com/activities/fashion/makeover/ - (details) (trace)
http://dc.watch.impress.co.jp/cda/review/2008/11/06/9544.html - (details) (trace)
http://jobsearch.monster.ca/ - (details) (trace)
http://www.wawerko.de/index.php - (details) (trace)
http://www.skype.com/intl/en-gb/allfeatures/subscriptions/ - (details) (trace)
http://www.dmax.de/tv-programm/ - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1110/hot580.htm - (details) (dump) (trace)
http://barbie.everythinggirl.com/diamond/ - (details) (trace)
http://blog.sina.com.cn/s/blog_4ac5b19f0100ba3g.html - (details) (dump) (trace)
http://www.adultswim.com/video/index.html - (details) (trace)
http://my.aol.com/# - (details) (trace)
http://mail73.abv.bg/app/j/box.jsp - (details) (dump) (trace)
http://www.barceloviajes.com/sites/all/vuelos/disponibilidad.jsp - (details) (dump) (trace)
http://monster.de/ - (details) (dump) (trace)
http://blog.sina.com.cn/s/blog_46e815bb0100bcgm.html - (details) (dump) (trace)
http://www.tomshardware.com/us/#redir - (details) (dump) (trace)
http://tw.search.bid.yahoo.com/search/booth - (details) (dump) (trace)
http://blog.sina.com.cn/s/blog_47014d300100ax71.html - (details) (trace)
http://shop.ebay.com.au/items/ - (details) (dump) (trace)
http://www.theitjobboard.co.uk/index.php - (details) (trace)
http://www.goalsarena.com/ - (details) (trace)
http://pt.betclic.com/sport/EventDetail.aspx - (details) (trace)
http://www43.ownskin.com/theme - (details) (trace)
http://pbskids.org/curiousgeorge/printables/ - (details) (dump) (trace)
http://www.asus.com.tw/products.aspx - (details) (trace)
http://hp-consumer.my.aol.ch/ - (details) (dump) (trace)
http://www.mature-bitches.com/galleries/mycats2/maturewives.shtml - (details) (trace)
http://www.soldados.com/plazas/buscador.jsp - (details) (dump) (trace)
http://compaq-consumer.my.aol.es/ - (details) (trace)
http://www.cuantosexo.com/media/profesora-caliente.html - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1113/hotrev387.htm - (details) (trace)
http://www.holidaycheck.at - (details) (trace)
http://www.fotolog.com - (details) (dump) (trace)
http://www.adultswim.com/games/ - (details) (dump) (trace)
http://www.drapt.com/maemul/index.htm - (details) (trace)
http://www.quizilla.com/my/watchlist - (details) (trace)
http://hp-consumer.my.aol.com.br/ - (details) (dump) (trace)
http://hp-consumer.my.aol.ca/ - (details) (trace)
http://www.spielesite.com/# - (details) (dump) (trace)
http://xxxstash.com/action/videolist/videonew/ - (details) (trace)
http://www.bluemountain.com/downloads/category.pd - (details) (trace)
http://www.bluemountain.com/display.pd - (details) (dump) (trace)
http://www.noordhollandsdagblad.nl/ - (details) (trace)
http://www.protv.ro/ - (details) (dump) (trace)
http://www.swissarmy.com/multitools/Pages/Category.aspx - (details) (trace)
http://www.rootzoo.com/threads/browse - (details) (dump) (trace)
http://pc.watch.impress.co.jp/docs/2008/1107/winhec02.htm - (details) (dump) (trace)
http://www.watch.impress.co.jp/game/docs/20081110/fallout3.htm - (details) (dump) (trace)
http://paxacu.com.mx/home/index.php - (details) (trace)
http://www.moviemaze.de/media/trailer/ - (details) (trace)
http://blog.sina.com.cn/s/blog_3de20b180100bfk6.html - (details) (trace)
http://www.mobango.com/swarea/ - (details) (dump) (trace)
http://www.ilgiornale.it/video.pic1 - (details) (dump) (trace)
http://www.sukuposti.net/results.php - (details) (dump) (trace)
http://www.monster.co.uk/ - (details) (trace)
http://www.littlewoodsdirect.com/rf/lxd/navigation/home/index.do - (details) (dump) (trace)
http://www.usmarkets.nl/Categorien/Beurs-round-up.44.html - (details) (dump) (trace)
http://www.pointcafe.jp/ - (details) (dump) (trace)
http://k-tai.impress.co.jp/cda/article/stapa/42694.html - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1112/jisho025.htm - (details) (trace)
http://www.monster.it/ - (details) (trace)
http://mark.sina.com.cn/v2/blog_hot.php?hwfrom=浪首_博客区&amp;keyword=柳屹：无上装大片&amp;url=http://blog.sina.com.cn/s/blog_3e42c9950100bk4a.html?tj=1 - (details) (dump) (trace)
http://www.vi.nl/Wedstrijden/Wedstrijd.htm - (details) (trace)
http://mail73.abv.bg/app/servlet/plogin - (details) (dump) (trace)
http://www.adultswim.com/games/index.html - (details) (trace)
http://en.betclic.com/sport/EventDetail.aspx - (details) (dump) (trace)
http://www.iex.nl/stocks/stocks_detail.asp - (details) (trace)
http://www.peachjohn.co.jp/shop/desc.php - (details) (dump) (trace)
http://www.tucoff.com/cgi-bin/atx/out.cgi - (details) (dump) (trace)
http://en.betclic.com/sport/Match.aspx - (details) (trace)
http://www.irshell.org/site/index.php - (details) (trace)
http://www.hotfm.com.my/ - (details) (trace)
http://www.xperienciasxtremas.com/index.php - (details) (dump) (trace)
http://www.ngfotocommunity.net/index.php - (details) (dump) (trace)
http://www.quizilla.com/quizzes - (details) (dump) (trace)
http://vietnamnet.vn/thegioi/ - (details) (dump) (trace)
http://www.web-modules.net/userbar.html - (details) (trace)
http://www.quizilla.com/stories/popular - (details) (trace)
http://www.tbs.com/video/index/#/all-video/full-episodes/ - (details) (trace)
http://mon.monster.fr/account/accountedit.aspx - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1107/asus.htm - (details) (trace)
http://www.kingsvideos.com/ - (details) (trace)
http://frontpage.fok.nl/ - (details) (dump) (trace)
http://www.bluemountain.com/cnp/cpselect.pd - (details) (trace)
http://www.jaap.nl/huizen/ - (details) (dump) (trace)
http://www.homescandal.com/home/ - (details) (trace)
http://www.pandora.com/backstage - (details) (dump) (trace)
http://aukcje.nasza-klasa.pl/ - (details) (trace)
http://www.lasenza.com/eng/categorysearch/redirect.cfm - (details) (trace)
http://www.alquds.com/pdf - (details) (dump) (trace)
http://boards.adultswim.com/adultswim/board - (details) (dump) (trace)
http://shop.plaza.rakuten.co.jp/ - (details) (trace)
http://www53.ownskin.com/theme - (details) (trace)
http://box.zhangmen.baidu.com/m?gate=5&amp;ct=134217728&amp;tn=baidumt,未选择歌曲%20%20&amp;word=mp3,,,[]&amp;si=;;未选择歌曲;;;;&amp;lm=16777216 - (details) (trace)
http://vietnamnet.vn/kinhte/ - (details) (trace)
http://www.tmf.nl/ - (details) (dump) (trace)
http://www.bdd.cl/ - (details) (dump) (trace)
http://hlo.tohotheater.jp/net/schedule/010/TNPI2000J01.do - (details) (dump) (trace)
http://hp-consumer.my.aol.it/ - (details) (trace)
http://www.weeronline.nl/nlnlaaz.htm - (details) (trace)
http://blog.sina.com.cn/s/blog_4758d0dd0100bdm4.html - (details) (dump) (trace)
http://www.quizilla.com/quizzes/ultimate - (details) (dump) (trace)
http://av.watch.impress.co.jp/docs/20081112/sharp.htm - (details) (dump) (trace)
http://hp-commercial.my.aol.com/ - (details) (trace)
http://www.usmarkets.nl/ - (details) (dump) (trace)
http://blog.sina.com.cn/s/blog_4a39b61b0100bilk.html - (details) (trace)
http://hp-consumer.my.aol.de/ - (details) (dump) (trace)
http://www.lasenza.com/fre/categorysearch/redirect.cfm - (details) (trace)
http://partsfinder.ebay.co.uk/#tyres/vrm - (details) (trace)
http://shop.paulfrank.com/store/productslist.aspx - (details) (trace)
http://www.newson6.com/ - (details) (trace)
http://www.babnet.net/ - (details) (trace)
http://compaq-consumer.my.aol.co.uk/ - (details) (trace)
http://k-tai.impress.co.jp/cda/article/news_toppage/42606.html - (details) (trace)
http://www.quizilla.com/my/profile - (details) (dump) (trace)
http://www.clubic.com/download/ - (details) (dump) (trace)
http://hp-consumer.my.aol.qc.ca/ - (details) (trace)
http://www.eurobench.com/ - (details) (trace)
http://hp-commercial.my.aol.co.uk/ - (details) (dump) (trace)
http://my.monster.com/home.aspx - (details) (trace)
http://www.watch.impress.co.jp/game/docs/20081107/r2.htm - (details) (dump) (trace)
http://www.skype.com/go/subscriptions - (details) (trace)
http://www.qunar.com/site/index.htm - (details) (trace)
http://www.iex.nl/# - (details) (dump) (trace)
http://www.360buy.com/brandlist.aspx - (details) (dump) (trace)
http://mail72.abv.bg/app/j/logout.jsp - (details) (dump) (trace)
http://www.jiwa.fm/ - (details) (trace)
http://blog.sina.com.cn/s/blog_4a39b61b0100bikd.html - (details) (dump) (trace)
http://www.time.com/time/ - (details) (trace)
http://usa.asus.com/products.aspx - (details) (dump) (trace)
http://france.asus.com/products.aspx - (details) (dump) (trace)
http://mail72.abv.bg/app/j/openmessage.jsp - (details) (trace)
http://www.time.com/time/politics/article/0,8599,1856613,00.html - (details) (trace)
http://stockgroup.financialpost.com/sn_overview_fp.asp - (details) (trace)
http://www.babes-board.ch/babelist/ - (details) (dump) (trace)
http://www.hautelook.com/product - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1110/transcend.htm - (details) (trace)
http://blog.sina.com.cn/s/blog_47465aa50100bgyx.html - (details) (trace)
http://ibe.s7.ru/S7/webqtrip.html - (details) (trace)
http://www.worldofwarcraft.com/downloads/wallpapers/fan-wallpapers/ - (details) (trace)
http://www.dagbladet.no/tegneserie/ - (details) (trace)
http://www.time.com/time/nation/article/0,8599,1857980,00.html - (details) (trace)
http://www.enjoy.se/prodlist.php - (details) (trace)
http://www.visiofoot.fr/ - (details) (dump) (trace)
http://offer.mobistar.be/fr/promotions/promo-tempomusic - (details) (trace)
http://www.skynet.be/entertainment-fr/dossier - (details) (dump) (trace)
http://blog.sina.com.cn/s/blog_4ca2560d0100bl3h.html - (details) (trace)
http://www.alljobs.co.il/home.aspx - (details) (dump) (trace)
http://pc.watch.impress.co.jp/docs/2008/1112/asus.htm - (details) (trace)
http://k-tai.impress.co.jp/cda/article/news_toppage/42595.html - (details) (trace)
http://pl.betclic.com/Sport/live.aspx - (details) (trace)
http://www.zarplata.ru/user/applicant/resume/index.aspx - (details) (dump) (trace)
http://www.capital.com.tw/ - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1110/yajiuma.htm - (details) (dump) (trace)
http://mystock.cn.yahoo.com/mystock/mystock.html - (details) (dump) (trace)
http://www.enwhore.com/movie/18316-Chunky-Teen-Gets-Her-Pussy-Fucked-Good.html - (details) (trace)
http://pc.watch.impress.co.jp/docs/2008/1111/pa_cphdd.htm - (details) (dump) (trace)
http://www.kcrw.com/ - (details) (trace)
http://www.wickedtemptations.com/lingerie-categories-best-sellers.html - (details) (dump) (trace)
http://www.o-books.com/marketing/index.php - (details) (trace)
http://www.cumpool.com/cgi-bin/atx/out.cgi - (details) (trace)
http://my.barackobama.com/page/content/espanol - (details) (trace)
http://fotolog.com/ - (details) (trace)
http://www.zorraspilladas.com/ - (details) (trace)
http://dc.watch.impress.co.jp/cda/other/2008/11/11/9611.html - (details) (trace)
http://www.carpartswholesale.com/v5/models.php - (details) (dump) (trace)
http://www.quizilla.com/my/message/compose - (details) (trace)
http://www.klm.com/travel/gb_en/index_default.html - (details) (trace)
http://www.radioparty.ro/index.php - (details) (trace)
http://www.edhardyshop.com/ - (details) (dump) (trace)
http://www.scholieren.com/ - (details) (trace)
http://www.quizilla.com/search - (details) (trace)
http://www.animenewsnetwork.com/encyclopedia/anime.php - (details) (trace)
http://www.stylintrucks.com/sn.aspx - (details) (trace)
http://irshell.org/site/index.php - (details) (trace)
http://boards.adultswim.com/adultswim/ - (details) (dump) (trace)
http://usa.asus.com/index.aspx - (details) (trace)
http://www.routenet.nl/ - (details) (trace)
http://www.asus.com/index.aspx - (details) (dump) (trace)
http://cfrb.lecpoints.com/index.php - (details) (trace)
http://uk.asus.com/products.aspx - (details) (dump) (trace)
http://my.monster.it/login.aspx - (details) (trace)
http://www.skype.com/intl/pl/allfeatures/subscriptions/ - (details) (trace)
http://mail73.abv.bg/app/j/home.jsp - (details) (trace)
http://www.pointclickhome.com/sweepstakes - (details) (dump) (trace)
http://cmsgallery.naughtyamerica.com/tour/2cst/558/690/2/TC_11_03/mm_01/ - (details) (dump) (trace)
http://tienda.vodafone.es/moviles/lanzamientos/blackberry_storm/index.jsp - (details) (trace)
http://www.alljobs.co.il/ - (details) (trace)
http://www.teenvogue.com/style/bestdressed/teen-vogue-best-dressed-october-2008 - (details) (trace)
http://my.monster.com/Account/ApplyHistory.aspx - (details) (dump) (trace)
http://www.authorize.net/ - (details) (trace)
http://www.rossoincontri.com/modules/rmmf/view.php - (details) (trace)
http://www.skype.com/intl/it/allfeatures/subscriptions/ - (details) (trace)
http://www.hokuseiyoichi.com/ - (details) (trace)
http://www.nokia.com.br/ - (details) (trace)
http://h8m.net/browse.php - (details) (dump) (trace)
http://my.monster.com/Login.aspx - (details) (dump) (trace)
http://www.monster.com/ - (details) (dump) (trace)
http://www.mobango.com/swarea/index.php/games/f-most_viewed - (details) (trace)
http://www.skype.com/intl/es/allfeatures/subscriptions/ - (details) (trace)
http://www.nokia.it/A41096547 - (details) (trace)
http://www.muivi.com/muivi/index.php - (details) (dump) (trace)
http://www.skynet.be/services/recherche/google - (details) (trace)
http://www.mangmoo.com/board/index.php - (details) (trace)
http://www.abeltronica.com/velocimetro/pt/ - (details) (dump) (trace)
http://www.adultswim.com/index2.html - (details) (dump) (trace)
http://www.cafejeux.com/#game/7 - (details) (trace)
http://www.pwonline.ru/account.php - (details) (dump) (trace)
http://www.cafejeux.com/ - (details) (trace)
http://v.vodone.com/content_2008.shtml - (details) (dump) (trace)
http://www.cafejeux.com/# - (details) (trace)
http://fr.asus.com/products.aspx - (details) (dump) (trace)
http://n5f.info/browse.php - (details) (trace)
http://www.skype.com/allfeatures/subscriptions/ - (details) (trace)
http://www.mature-bitches.com/galleries/veryoldgranny.shtml - (details) (dump) (trace)
http://www.xiaoli.cc/ - (details) (trace)
http://www.emerce.nl/ - (details) (trace)
http://www.iex.nl/ - (details) (trace)
http://www.direttagoal.it/ - (details) (dump) (trace)
http://www.peachjohn.co.jp/ - (details) (trace)
http://www.greenshines.com/ - (details) (trace)
http://www27.ownskin.com/theme - (details) (dump) (trace)
http://www.sesso24ore.com/ - (details) (trace)
http://tw.search.bid.yahoo.com/search/ac - (details) (trace)
http://www.skype.com/intl/ja/allfeatures/subscriptions/ - (details) (trace)
http://www.cfares.com/advancedsearch.cfr - (details) (trace)
http://www.funx.nl/index.php - (details) (trace)
http://k-tai.impress.co.jp/cda/article/news_toppage/42688.html - (details) (dump) (trace)
http://radiozet.allegro.pl/showcat.php - (details) (trace)
http://dc.watch.impress.co.jp/cda/dslr/2008/11/08/9440.html - (details) (trace)
http://www.camelclips.com/ - (details) (dump) (trace)
http://www.atrapalo.com/espectaculos/madrid - (details) (trace)
http://compaq-consumer.my.aol.ca/ - (details) (dump) (trace)
http://www.foxwoods.com/ - (details) (dump) (trace)
http://www.wickedtemptations.com/ - (details) (trace)
http://www.fujiya-camera.co.jp/ - (details) (trace)
http://www.blondinbella.se/ - (details) (trace)
http://blog.sina.com.cn/s/blog_4d89b8340100b8hi.html - (details) (trace)
http://www.stltoday.com/sports#stl-masthead - (details) (trace)
http://port.ro/pls/fi/films.film_page - (details) (trace)
http://amapy.atlas.cz/default.aspx - (details) (dump) (trace)
http://www.mcdonalds.co.jp/shop/index.html - (details) (dump) (trace)
http://www.athleticum.ch/shop/products/index.html - (details) (trace)
http://www.scholieren.com/zoeken - (details) (trace)
http://www.funx.nl/ - (details) (trace)
http://www.peachjohn.co.jp/digicata/ - (details) (trace)
http://www.fuse.tv/music/best-of-2008/ - (details) (trace)
http://www.kathimerini.gr/ - (details) (dump) (trace)
http://www.ukb-kvcd.com/forums/index.php - (details) (trace)
http://www.diez.hn/ - (details) (trace)
http://www.vesseltracker.com/app - (details) (dump) (trace)
http://www.ziekenhuis.nl/index.php - (details) (trace)
http://forum.scholieren.com/showthread.php - (details) (dump) (trace)
http://mein.monster.de/Resume/ViewResume.aspx - (details) (dump) (trace)
http://www.xxxmofo.com/ - (details) (trace)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147929</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-17 13:45:14 -0700</bug_when>
    <thetext>Awesome.  Thanks.  I&apos;ll investigate this weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148951</commentid>
    <comment_count>28</comment_count>
      <attachid>39414</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-21 21:58:12 -0700</bug_when>
    <thetext>Comment on attachment 39414
Patch v1

Clearing flags while investigating the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149944</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-25 00:35:16 -0700</bug_when>
    <thetext>Reduction:

&lt;script&gt;
function log(msg) {
  var elmt = document.createElement(&quot;div&quot;);
  elmt.textContent = msg;
  document.body.appendChild(msg);
}

var timer = setInterval(function() {
  clearInterval(timer);
  log(&quot;fired&quot;);
}, 10);
&lt;/script&gt;

Maybe it has to do with the clearInterval making us delete something we actually need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149945</commentid>
    <comment_count>30</comment_count>
      <attachid>40101</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-25 00:59:43 -0700</bug_when>
    <thetext>Created attachment 40101
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149946</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-25 01:01:42 -0700</bug_when>
    <thetext>Dimitri, you should be excited to review this patch because it fixes two LayoutTests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150007</commentid>
    <comment_count>32</comment_count>
      <attachid>40101</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-09-25 07:31:34 -0700</bug_when>
    <thetext>Comment on attachment 40101
Patch v1

If I was any more excited, I would burst into confetti-sized pieces, District 9-style. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150035</commentid>
    <comment_count>33</comment_count>
      <attachid>40101</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-25 09:37:04 -0700</bug_when>
    <thetext>Comment on attachment 40101
Patch v1

Clearing flags on attachment: 40101

Committed r48759: &lt;http://trac.webkit.org/changeset/48759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150036</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-25 09:37:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180108</commentid>
    <comment_count>35</comment_count>
      <attachid>40101</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-13 00:29:33 -0800</bug_when>
    <thetext>Comment on attachment 40101
Patch v1

&gt; +++ b/LayoutTests/fast/dom/timer-clear-interval-in-handler-and-generate-error.html
&gt; +function log(msg) {
&gt; +  var elmt = document.createElement(&quot;div&quot;);
&gt; +  elmt.textContent = msg;
&gt; +  document.body.appendChild(msg);

Should this be &quot;document.body.appendChild(elmt);&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180114</commentid>
    <comment_count>36</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-13 00:39:47 -0800</bug_when>
    <thetext>&gt; Should this be &quot;document.body.appendChild(elmt);&quot;?

Probably.  Would you like to create a new bug and post a patch for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180536</commentid>
    <comment_count>37</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-13 21:32:38 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; &gt; Should this be &quot;document.body.appendChild(elmt);&quot;?
&gt; 
&gt; Probably.  Would you like to create a new bug and post a patch for this?

Made Bug#33649</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33705</attachid>
            <date>2009-07-29 02:31:05 -0700</date>
            <delta_ts>2009-08-02 23:28:49 -0700</delta_ts>
            <desc>Work-in-progress</desc>
            <filename>bug-27703-20090729023104.patch</filename>
            <type>text/plain</type>
            <size>7490</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAJKHJldmlzaW9uIDQ2
NTI4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw5ICs0NCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNjaGVk
dWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5j
LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSkKLSAgICA6IG1fY29kZShT
dHJpbmcoKSwgS1VSTCgpLCAwKQorU2NoZWR1bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24odjg6
OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1
bmMsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQorICAgIDogbV9jb250
ZXh0KGNvbnRleHQpCisgICAgLCBtX2NvZGUoU3RyaW5nKCksIEtVUkwoKSwgMCkKIHsKKyAgICBt
X2NvbnRleHQubWFrZVdlYWsoKTsKICAgICBtX2Z1bmN0aW9uID0gdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uPjo6TmV3KGZ1bmMpOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtNjAsNyArNjIsNyBA
QCBTY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbih2ODo6SGFuCiAgICAgICAgICAgICBt
X2FyZ3ZbaV0gPSB2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+OjpOZXcoYXJndltpXSk7CiAKICNp
Zm5kZWYgTkRFQlVHCi0gICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKFND
SEVEVUxFRF9BQ1RJT04sIHRoaXMsIG1fYXJndltpXSk7CisgICAgICAgICAgICBWOEdDQ29udHJv
bGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NIRURVTEVEX0FDVElPTiwgdGhpcywgbV9hcmd2
W2ldKTsKICNlbmRpZgogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xMDYsNyArMTA4LDcgQEAg
dm9pZCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUoVjhQcm94eSogcAogICAgIEFTU0VSVChwcm94
eSk7CiAKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4
OjpDb250ZXh0PiB2OENvbnRleHQgPSBwcm94eS0+Y29udGV4dCgpOworICAgIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IG1fY29udGV4dC5nZXQoKTsKICAgICBpZiAodjhDb250
ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOyAvLyBKUyBtYXkgbm90IGJlIGVuYWJsZWQu
CiAKQEAgLTEzMCwxNiArMTMyLDE2IEBAIHZvaWQgU2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKFdv
cmtlckNvbnQKICAgICAvLyBJbiBhIFdvcmtlciwgdGhlIGV4ZWN1dGlvbiBzaG91bGQgYWx3YXlz
IGhhcHBlbiBvbiBhIHdvcmtlciB0aHJlYWQuCiAgICAgQVNTRVJUKHdvcmtlckNvbnRleHQtPnRo
cmVhZCgpLT50aHJlYWRJRCgpID09IGN1cnJlbnRUaHJlYWQoKSk7CiAgIAotICAgIFdvcmtlclNj
cmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSB3b3JrZXJDb250ZXh0LT5zY3JpcHQo
KTsKLQogICAgIGlmICghbV9mdW5jdGlvbi5Jc0VtcHR5KCkgJiYgbV9mdW5jdGlvbi0+SXNGdW5j
dGlvbigpKSB7CiAgICAgICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICAgICAg
djg6OkxvY2FsPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBzY3JpcHRDb250cm9sbGVyLT5wcm94
eSgpLT5HZXRDb250ZXh0KCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29u
dGV4dCA9IG1fY29udGV4dC5nZXQoKTsKICAgICAgICAgQVNTRVJUKCF2OENvbnRleHQuSXNFbXB0
eSgpKTsKICAgICAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7CiAgICAg
ICAgIG1fZnVuY3Rpb24tPkNhbGwodjhDb250ZXh0LT5HbG9iYWwoKSwgbV9hcmdjLCBtX2FyZ3Yp
OwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7CisgICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdENvbnRyb2xsZXIgPSB3b3JrZXJDb250ZXh0LT5zY3JpcHQoKTsKICAgICAgICAg
c2NyaXB0Q29udHJvbGxlci0+ZXZhbHVhdGUobV9jb2RlKTsKKyAgICB9CiB9CiAjZW5kaWYKIApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oCShyZXZpc2lvbiA0NjUyOCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgU2NoZWR1bGVkQWN0aW9uX2gKICNkZWZpbmUgU2No
ZWR1bGVkQWN0aW9uX2gKIAorI2luY2x1ZGUgIk93bkhhbmRsZS5oIgogI2luY2x1ZGUgIlNjcmlw
dFNvdXJjZUNvZGUuaCIKIAogI2luY2x1ZGUgPHY4Lmg+CkBAIC00NCwxMiArNDUsMTQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIFNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGlu
dCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKLSAgICAgICAgZXhwbGljaXQg
U2NoZWR1bGVkQWN0aW9uKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgY29kZSwgY29uc3QgS1VSTCYg
dXJsID0gS1VSTCgpKQotICAgICAgICAgICAgOiBtX2FyZ2MoMCkKKyAgICAgICAgU2NoZWR1bGVk
QWN0aW9uKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+LCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4s
IGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKKyAgICAgICAgZXhwbGlj
aXQgU2NoZWR1bGVkQWN0aW9uKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQsIGNvbnN0
IFdlYkNvcmU6OlN0cmluZyYgY29kZSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpKQorICAgICAg
ICAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAgICAgICAgICwgbV9hcmdjKDApCiAgICAg
ICAgICAgICAsIG1fYXJndigwKQogICAgICAgICAgICAgLCBtX2NvZGUoY29kZSwgdXJsKQogICAg
ICAgICB7CisgICAgICAgICAgICBtX2NvbnRleHQubWFrZVdlYWsoKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHZpcnR1YWwgflNjaGVkdWxlZEFjdGlvbigpOwpAQCAtNjEsNiArNjQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZXhlY3V0ZShXb3JrZXJDb250ZXh0Kik7CiAj
ZW5kaWYKIAorICAgICAgICBPd25IYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4dDsKICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uPiBtX2Z1bmN0aW9uOwogICAgICAgICBpbnQg
bV9hcmdjOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+KiBtX2FyZ3Y7CkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3Bw
CShyZXZpc2lvbiA0NjUyOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2lu
ZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTQgKzY1LDE4IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6V2luZG93U2UKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKIAogICAgIERPTVdpbmRvdyogaW1wID0gVjhET01XcmFwcGVyOjpjb252ZXJ0VG9O
YXRpdmVPYmplY3Q8RE9NV2luZG93PihWOENsYXNzSW5kZXg6OkRPTVdJTkRPVywgYXJncy5Ib2xk
ZXIoKSk7CisgICAgRnJhbWUqIGZyYW1lID0gaW1wLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUp
CisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAgICBpZiAoIWltcC0+ZnJhbWUo
KSkKKyAgICBpZiAoIVY4UHJveHk6OmNhbkFjY2Vzc0ZyYW1lKGZyYW1lLCB0cnVlKSkKICAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIGlmICghVjhQcm94eTo6Y2FuQWNjZXNz
RnJhbWUoaW1wLT5mcmFtZSgpLCB0cnVlKSkKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2
OENvbnRleHQgPSBWOFByb3h5Ojpjb250ZXh0KGZyYW1lKTsKKyAgICBpZiAodjhDb250ZXh0Lklz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kj4oaW1wLT5mcmFtZSgpLT5kb2N1bWVudCgpKTsKKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gc3RhdGljX2Nhc3Q8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCo+KGZyYW1lLT5kb2N1bWVudCgpKTsKIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBm
dW5jdGlvbiA9IGFyZ3NbMF07CiAKQEAgLTg4LDcgKzkyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4Q3VzdG9tOjpXaW5kb3dTZQogICAgICAgICBpZiAoZnVuY3Rpb25TdHJpbmcubGVuZ3Ro
KCkgPT0gMCkKICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAgICAgICAg
aWQgPSBET01UaW1lcjo6aW5zdGFsbChzY3JpcHRDb250ZXh0LCBuZXcgU2NoZWR1bGVkQWN0aW9u
KGZ1bmN0aW9uU3RyaW5nKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIGlkID0gRE9N
VGltZXI6Omluc3RhbGwoc2NyaXB0Q29udGV4dCwgbmV3IFNjaGVkdWxlZEFjdGlvbih2OENvbnRl
eHQsIGZ1bmN0aW9uU3RyaW5nKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAgICAgfSBlbHNlIGlm
IChmdW5jdGlvbi0+SXNGdW5jdGlvbigpKSB7CiAgICAgICAgIGludCBwYXJhbUNvdW50ID0gYXJn
dW1lbnRDb3VudCA+PSAyID8gYXJndW1lbnRDb3VudCAtIDIgOiAwOwogICAgICAgICB2ODo6TG9j
YWw8djg6OlZhbHVlPiogcGFyYW1zID0gMDsKQEAgLTEwMCw3ICsxMDQsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhDdXN0b206OldpbmRvd1NlCiAgICAgICAgIH0KIAogICAgICAgICAvLyBw
YXJhbXMgaXMgcGFzc2VkIHRvIGFjdGlvbiwgYW5kIHJlbGVhc2VkIGluIGFjdGlvbidzIGRlc3Ry
dWN0b3IKLSAgICAgICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0
aW9uKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlvbiksIHBhcmFtQ291bnQs
IHBhcmFtcyk7CisgICAgICAgIFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uID0gbmV3IFNjaGVkdWxl
ZEFjdGlvbih2OENvbnRleHQsIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlv
biksIHBhcmFtQ291bnQsIHBhcmFtcyk7CiAKICAgICAgICAgZGVsZXRlW10gcGFyYW1zOwogCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDQ2NTI4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYs
OSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gU2V0VGltZW91dE9ySW50ZXJ2CiB7CiAgICAgV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IFY4RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBw
ZXJUb05hdGl2ZTxXb3JrZXJDb250ZXh0PihhcmdzLkhvbGRlcigpKTsKIAorICAgIHY4OjpIYW5k
bGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHdvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5wcm94
eSgpLT5HZXRDb250ZXh0KCk7CisgICAgQVNTRVJUKCF2OENvbnRleHQuSXNFbXB0eSgpKTsKKwog
ICAgIGludCBhcmd1bWVudENvdW50ID0gYXJncy5MZW5ndGgoKTsKICAgICBpZiAoYXJndW1lbnRD
b3VudCA8IDEpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CkBAIC0xMDYsNyArMTA5
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFNldFRpbWVvdXRPckludGVydgogCiAgICAgaWYg
KGZ1bmN0aW9uLT5Jc1N0cmluZygpKSB7CiAgICAgICAgIFdlYkNvcmU6OlN0cmluZyBzdHJpbmdG
dW5jdGlvbiA9IHRvV2ViQ29yZVN0cmluZyhmdW5jdGlvbik7Ci0gICAgICAgIHRpbWVySWQgPSBE
T01UaW1lcjo6aW5zdGFsbCh3b3JrZXJDb250ZXh0LCBuZXcgU2NoZWR1bGVkQWN0aW9uKHN0cmlu
Z0Z1bmN0aW9uLCB3b3JrZXJDb250ZXh0LT51cmwoKSksIHRpbWVvdXQsIHNpbmdsZVNob3QpOwor
ICAgICAgICB0aW1lcklkID0gRE9NVGltZXI6Omluc3RhbGwod29ya2VyQ29udGV4dCwgbmV3IFNj
aGVkdWxlZEFjdGlvbih2OENvbnRleHQsIHN0cmluZ0Z1bmN0aW9uLCB3b3JrZXJDb250ZXh0LT51
cmwoKSksIHRpbWVvdXQsIHNpbmdsZVNob3QpOwogICAgIH0gZWxzZSBpZiAoZnVuY3Rpb24tPklz
RnVuY3Rpb24oKSkgewogICAgICAgICBzaXplX3QgcGFyYW1Db3VudCA9IGFyZ3VtZW50Q291bnQg
Pj0gMiA/IGFyZ3VtZW50Q291bnQgLSAyIDogMDsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4qIHBhcmFtcyA9IDA7CkBAIC0xMTYsNyArMTE5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFNldFRpbWVvdXRPckludGVydgogICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGFyZ3NbaSsy
XTsKICAgICAgICAgfQogICAgICAgICAvLyBTY2hlZHVsZWRBY3Rpb24gdGFrZXMgb3duZXJzaGlw
IG9mIGFjdHVhbCBwYXJhbXMgYW5kIHJlbGVhc2VzIHRoZW0gaW4gaXRzIGRlc3RydWN0b3IuCi0g
ICAgICAgIFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uID0gbmV3IFNjaGVkdWxlZEFjdGlvbih2ODo6
SGFuZGxlPHY4OjpGdW5jdGlvbj46OkNhc3QoZnVuY3Rpb24pLCBwYXJhbUNvdW50LCBwYXJhbXMp
OworICAgICAgICBTY2hlZHVsZWRBY3Rpb24qIGFjdGlvbiA9IG5ldyBTY2hlZHVsZWRBY3Rpb24o
djhDb250ZXh0LCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj46OkNhc3QoZnVuY3Rpb24pLCBwYXJh
bUNvdW50LCBwYXJhbXMpOwogICAgICAgICBkZWxldGUgW10gcGFyYW1zOwogICAgICAgICB0aW1l
cklkID0gRE9NVGltZXI6Omluc3RhbGwod29ya2VyQ29udGV4dCwgYWN0aW9uLCB0aW1lb3V0LCBz
aW5nbGVTaG90KTsKICAgICB9IGVsc2U=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33959</attachid>
            <date>2009-08-02 23:28:58 -0700</date>
            <delta_ts>2009-08-03 11:50:47 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27703-20090802232857.patch</filename>
            <type>text/plain</type>
            <size>12529</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjcxMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDgtMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IFRlYWNoIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZSBhYm91dCBpc29sYXRlZCB3b3JsZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAzCisKKyAg
ICAgICAgV2Ugbm93IHNhdmUgYSB3ZWFrIGhhbmRsZSB0byB0aGUgb3JpZ2luYWwgY29udGV4dC4g
IFdlIHVzZSB0aGF0IGhhbmRsZQorICAgICAgICB0byBjYWxsIHRoZSB0aW1lb3V0IGluIHRoZSBy
aWdodCBjb250ZXh0IC8gd29ybGQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVv
dXQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbTo6V2lu
ZG93U2V0VGltZW91dEltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtl
ckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0VGltZW91dE9ySW50ZXJ2
YWwpOgorCiAyMDA5LTA4LTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKIApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcAkocmV2aXNpb24gNDY1
NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDkgKzQ0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmMs
IGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQotICAgIDogbV9jb2RlKFN0
cmluZygpLCBLVVJMKCksIDApCitTY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbih2ODo6
SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0LCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZnVu
YywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fY29kZShTdHJpbmcoKSwgS1VSTCgpLCAwKQogeworICAgIG1f
Y29udGV4dC5tYWtlV2VhaygpOwogICAgIG1fZnVuY3Rpb24gPSB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb24+OjpOZXcoZnVuYyk7CiAKICNpZm5kZWYgTkRFQlVHCkBAIC02MCw3ICs2Miw3IEBA
IFNjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKHY4OjpIYW4KICAgICAgICAgICAgIG1f
YXJndltpXSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT46Ok5ldyhhcmd2W2ldKTsKIAogI2lm
bmRlZiBOREVCVUcKLSAgICBWOEdDQ29udHJvbGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NI
RURVTEVEX0FDVElPTiwgdGhpcywgbV9hcmd2W2ldKTsKKyAgICAgICAgICAgIFY4R0NDb250cm9s
bGVyOjpyZWdpc3Rlckdsb2JhbEhhbmRsZShTQ0hFRFVMRURfQUNUSU9OLCB0aGlzLCBtX2FyZ3Zb
aV0pOwogI2VuZGlmCiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTEwNiw3ICsxMDgsNyBAQCB2
b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZShWOFByb3h5KiBwCiAgICAgQVNTRVJUKHByb3h5
KTsKIAogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+IHY4Q29udGV4dCA9IHByb3h5LT5jb250ZXh0KCk7CisgICAgdjg6OkhhbmRsZTx2
ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gbV9jb250ZXh0LmdldCgpOwogICAgIGlmICh2OENvbnRl
eHQuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm47IC8vIEpTIG1heSBub3QgYmUgZW5hYmxlZC4K
IApAQCAtMTMwLDE2ICsxMzIsMTYgQEAgdm9pZCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUoV29y
a2VyQ29udAogICAgIC8vIEluIGEgV29ya2VyLCB0aGUgZXhlY3V0aW9uIHNob3VsZCBhbHdheXMg
aGFwcGVuIG9uIGEgd29ya2VyIHRocmVhZC4KICAgICBBU1NFUlQod29ya2VyQ29udGV4dC0+dGhy
ZWFkKCktPnRocmVhZElEKCkgPT0gY3VycmVudFRocmVhZCgpKTsKICAgCi0gICAgV29ya2VyU2Ny
aXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IHdvcmtlckNvbnRleHQtPnNjcmlwdCgp
OwotCiAgICAgaWYgKCFtX2Z1bmN0aW9uLklzRW1wdHkoKSAmJiBtX2Z1bmN0aW9uLT5Jc0Z1bmN0
aW9uKCkpIHsKICAgICAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgICAgICB2
ODo6TG9jYWw8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHNjcmlwdENvbnRyb2xsZXItPnByb3h5
KCktPkdldENvbnRleHQoKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250
ZXh0ID0gbV9jb250ZXh0LmdldCgpOwogICAgICAgICBBU1NFUlQoIXY4Q29udGV4dC5Jc0VtcHR5
KCkpOwogICAgICAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKICAgICAg
ICAgbV9mdW5jdGlvbi0+Q2FsbCh2OENvbnRleHQtPkdsb2JhbCgpLCBtX2FyZ2MsIG1fYXJndik7
Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxl
ciogc2NyaXB0Q29udHJvbGxlciA9IHdvcmtlckNvbnRleHQtPnNjcmlwdCgpOwogICAgICAgICBz
Y3JpcHRDb250cm9sbGVyLT5ldmFsdWF0ZShtX2NvZGUpOworICAgIH0KIH0KICNlbmRpZgogCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmgJKHJldmlzaW9uIDQ2NTcwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY2hlZHVsZWRBY3Rpb25faAogI2RlZmluZSBTY2hl
ZHVsZWRBY3Rpb25faAogCisjaW5jbHVkZSAiT3duSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8djguaD4KQEAgLTQ0LDEyICs0NSwxNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb24gewogICAgIHB1Ymxp
YzoKLSAgICAgICAgU2NoZWR1bGVkQWN0aW9uKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiwgaW50
IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pOwotICAgICAgICBleHBsaWNpdCBT
Y2hlZHVsZWRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBjb2RlLCBjb25zdCBLVVJMJiB1
cmwgPSBLVVJMKCkpCi0gICAgICAgICAgICA6IG1fYXJnYygwKQorICAgICAgICBTY2hlZHVsZWRB
Y3Rpb24odjg6OkhhbmRsZTx2ODo6Q29udGV4dD4sIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiwg
aW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pOworICAgICAgICBleHBsaWNp
dCBTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwgY29uc3Qg
V2ViQ29yZTo6U3RyaW5nJiBjb2RlLCBjb25zdCBLVVJMJiB1cmwgPSBLVVJMKCkpCisgICAgICAg
ICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICAgICAgICAgLCBtX2FyZ2MoMCkKICAgICAg
ICAgICAgICwgbV9hcmd2KDApCiAgICAgICAgICAgICAsIG1fY29kZShjb2RlLCB1cmwpCiAgICAg
ICAgIHsKKyAgICAgICAgICAgIG1fY29udGV4dC5tYWtlV2VhaygpOwogICAgICAgICB9CiAKICAg
ICAgICAgdmlydHVhbCB+U2NoZWR1bGVkQWN0aW9uKCk7CkBAIC02MSw2ICs2NCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBleGVjdXRlKFdvcmtlckNvbnRleHQqKTsKICNl
bmRpZgogCisgICAgICAgIE93bkhhbmRsZTx2ODo6Q29udGV4dD4gbV9jb250ZXh0OwogICAgICAg
ICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb24+IG1fZnVuY3Rpb247CiAgICAgICAgIGludCBt
X2FyZ2M7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4qIG1fYXJndjsKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAJ
KHJldmlzaW9uIDQ2NTcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5k
b3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNCArNjUsMTggQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjpXaW5kb3dTZQogICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogCiAgICAgRE9NV2luZG93KiBpbXAgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRUb05h
dGl2ZU9iamVjdDxET01XaW5kb3c+KFY4Q2xhc3NJbmRleDo6RE9NV0lORE9XLCBhcmdzLkhvbGRl
cigpKTsKKyAgICBGcmFtZSogZnJhbWUgPSBpbXAtPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkK
KyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIGlmICghaW1wLT5mcmFtZSgp
KQorICAgIGlmICghVjhQcm94eTo6Y2FuQWNjZXNzRnJhbWUoZnJhbWUsIHRydWUpKQogICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCi0gICAgaWYgKCFWOFByb3h5OjpjYW5BY2Nlc3NG
cmFtZShpbXAtPmZyYW1lKCksIHRydWUpKQorICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4
Q29udGV4dCA9IFY4UHJveHk6OmNvbnRleHQoZnJhbWUpOworICAgIGlmICh2OENvbnRleHQuSXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCi0gICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IHN0YXRpY19jYXN0PFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqPihpbXAtPmZyYW1lKCktPmRvY3VtZW50KCkpOworICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kj4oZnJhbWUtPmRvY3VtZW50KCkpOwogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGZ1
bmN0aW9uID0gYXJnc1swXTsKIApAQCAtODgsNyArOTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhDdXN0b206OldpbmRvd1NlCiAgICAgICAgIGlmIChmdW5jdGlvblN0cmluZy5sZW5ndGgo
KSA9PSAwKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgICAgICBp
ZCA9IERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdENvbnRleHQsIG5ldyBTY2hlZHVsZWRBY3Rpb24o
ZnVuY3Rpb25TdHJpbmcpLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKKyAgICAgICAgaWQgPSBET01U
aW1lcjo6aW5zdGFsbChzY3JpcHRDb250ZXh0LCBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4Q29udGV4
dCwgZnVuY3Rpb25TdHJpbmcpLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKICAgICB9IGVsc2UgaWYg
KGZ1bmN0aW9uLT5Jc0Z1bmN0aW9uKCkpIHsKICAgICAgICAgaW50IHBhcmFtQ291bnQgPSBhcmd1
bWVudENvdW50ID49IDIgPyBhcmd1bWVudENvdW50IC0gMiA6IDA7CiAgICAgICAgIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+KiBwYXJhbXMgPSAwOwpAQCAtMTAwLDcgKzEwNCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEN1c3RvbTo6V2luZG93U2UKICAgICAgICAgfQogCiAgICAgICAgIC8vIHBh
cmFtcyBpcyBwYXNzZWQgdG8gYWN0aW9uLCBhbmQgcmVsZWFzZWQgaW4gYWN0aW9uJ3MgZGVzdHJ1
Y3RvcgotICAgICAgICBTY2hlZHVsZWRBY3Rpb24qIGFjdGlvbiA9IG5ldyBTY2hlZHVsZWRBY3Rp
b24odjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwg
cGFyYW1zKTsKKyAgICAgICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVk
QWN0aW9uKHY4Q29udGV4dCwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9u
KSwgcGFyYW1Db3VudCwgcGFyYW1zKTsKIAogICAgICAgICBkZWxldGVbXSBwYXJhbXM7CiAKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcAkocmV2aXNpb24gNDY1NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw5
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBTZXRUaW1lb3V0T3JJbnRlcnYKIHsKICAgICBXb3Jr
ZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBl
clRvTmF0aXZlPFdvcmtlckNvbnRleHQ+KGFyZ3MuSG9sZGVyKCkpOwogCisgICAgdjg6OkhhbmRs
ZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gd29ya2VyQ29udGV4dC0+c2NyaXB0KCktPnByb3h5
KCktPkdldENvbnRleHQoKTsKKyAgICBBU1NFUlQoIXY4Q29udGV4dC5Jc0VtcHR5KCkpOworCiAg
ICAgaW50IGFyZ3VtZW50Q291bnQgPSBhcmdzLkxlbmd0aCgpOwogICAgIGlmIChhcmd1bWVudENv
dW50IDwgMSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTEwNiw3ICsxMDks
NyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gU2V0VGltZW91dE9ySW50ZXJ2CiAKICAgICBpZiAo
ZnVuY3Rpb24tPklzU3RyaW5nKCkpIHsKICAgICAgICAgV2ViQ29yZTo6U3RyaW5nIHN0cmluZ0Z1
bmN0aW9uID0gdG9XZWJDb3JlU3RyaW5nKGZ1bmN0aW9uKTsKLSAgICAgICAgdGltZXJJZCA9IERP
TVRpbWVyOjppbnN0YWxsKHdvcmtlckNvbnRleHQsIG5ldyBTY2hlZHVsZWRBY3Rpb24oc3RyaW5n
RnVuY3Rpb24sIHdvcmtlckNvbnRleHQtPnVybCgpKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7Cisg
ICAgICAgIHRpbWVySWQgPSBET01UaW1lcjo6aW5zdGFsbCh3b3JrZXJDb250ZXh0LCBuZXcgU2No
ZWR1bGVkQWN0aW9uKHY4Q29udGV4dCwgc3RyaW5nRnVuY3Rpb24sIHdvcmtlckNvbnRleHQtPnVy
bCgpKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAgICAgfSBlbHNlIGlmIChmdW5jdGlvbi0+SXNG
dW5jdGlvbigpKSB7CiAgICAgICAgIHNpemVfdCBwYXJhbUNvdW50ID0gYXJndW1lbnRDb3VudCA+
PSAyID8gYXJndW1lbnRDb3VudCAtIDIgOiAwOwogICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVl
PiogcGFyYW1zID0gMDsKQEAgLTExNiw3ICsxMTksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
U2V0VGltZW91dE9ySW50ZXJ2CiAgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0gYXJnc1tpKzJd
OwogICAgICAgICB9CiAgICAgICAgIC8vIFNjaGVkdWxlZEFjdGlvbiB0YWtlcyBvd25lcnNoaXAg
b2YgYWN0dWFsIHBhcmFtcyBhbmQgcmVsZWFzZXMgdGhlbSBpbiBpdHMgZGVzdHJ1Y3Rvci4KLSAg
ICAgICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlvbiksIHBhcmFtQ291bnQsIHBhcmFtcyk7
CisgICAgICAgIFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uID0gbmV3IFNjaGVkdWxlZEFjdGlvbih2
OENvbnRleHQsIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlvbiksIHBhcmFt
Q291bnQsIHBhcmFtcyk7CiAgICAgICAgIGRlbGV0ZSBbXSBwYXJhbXM7CiAgICAgICAgIHRpbWVy
SWQgPSBET01UaW1lcjo6aW5zdGFsbCh3b3JrZXJDb250ZXh0LCBhY3Rpb24sIHRpbWVvdXQsIHNp
bmdsZVNob3QpOwogICAgIH0gZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDY3MTEpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0w
OC0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtWOF0gVGVhY2ggU2NoZWR1bGVkQWN0aW9u
OjpleGVjdXRlIGFib3V0IGlzb2xhdGVkIHdvcmxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDMKKworICAgICAgICBBZGQgdGVzdCBjb3ZlcmFn
ZSBmb3IgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gc2V0VGltZW91dCBhbmQgaXNvbGF0ZWQKKyAg
ICAgICAgd29ybGRzLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL3dpbmRvdy1zZXRUaW1lb3V0LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0
LWZ1bmN0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRp
bWVvdXQtc3RyaW5nLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA4LTAyICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGFuZCB1cGRhdGVkIGV4cGVjdGVkIHJlc3VsdC4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ct
c2V0VGltZW91dC1mdW5jdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LWZ1
bmN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MKKwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1z
ZXRUaW1lb3V0LWZ1bmN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LWZ1bmN0aW9uLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24uaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gZG9uZSgpIHsKKyAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7Cit9Cit3aW5kb3cuZnVuYyA9IGZ1bmN0aW9uICgpIHsKKyAgYWxlcnQoIkZBSUw6IFdy
b25nIGZ1bmN0aW9uLiIpOworICBkb25lKCk7Cit9OworZG9jdW1lbnQuZm9vID0gIkZBSUw6IFdy
b25nIHdyYXBwZXJzLiI7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNv
bGF0ZWRXb3JsZCgKKyAgICAiZG9jdW1lbnQuZm9vID0gJ1BBU1MnO1xuIiArCisgICAgIndpbmRv
dy5mdW5jID0gZnVuY3Rpb24gKCkge1xuIiArCisgICAgIiAgYWxlcnQoZG9jdW1lbnQuZm9vKTtc
biIgKworICAgICIgIHdpbmRvdy5sb2NhdGlvbiA9ICdqYXZhc2NyaXB0OmRvbmUoKSc7XG4iICsK
KyAgICAifTtcbiIgKworICAgICJ3aW5kb3cuc2V0VGltZW91dChmdW5jLCAwKTsiKTsKK30KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0cmluZy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0cmluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93
LXNldFRpbWVvdXQtc3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
IEBACitBTEVSVDogUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3RyaW5nLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1z
ZXRUaW1lb3V0LXN0cmluZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0cmluZy5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkb25l
KCkgeworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KK3dpbmRvdy5mdW5jID0gZnVuY3Rpb24gKCkgewor
ICBhbGVydCgiRkFJTDogV3JvbmcgZnVuY3Rpb24uIik7CisgIGRvbmUoKTsKK307Citkb2N1bWVu
dC5mb28gPSAiRkFJTDogV3Jvbmcgd3JhcHBlcnMuIjsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIGxheW91dFRlc3RDb250cm9sbGVy
LnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICAgICJkb2N1bWVudC5mb28gPSAnUEFTUyc7
XG4iICsKKyAgICAid2luZG93LmZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4iICsKKyAgICAiICBhbGVy
dChkb2N1bWVudC5mb28pO1xuIiArCisgICAgIiAgd2luZG93LmxvY2F0aW9uID0gJ2phdmFzY3Jp
cHQ6ZG9uZSgpJztcbiIgKworICAgICJ9O1xuIiArCisgICAgIndpbmRvdy5zZXRUaW1lb3V0KCdm
dW5jKCknLCAwKTsiKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33993</attachid>
            <date>2009-08-03 11:50:56 -0700</date>
            <delta_ts>2009-08-04 20:14:44 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27703-20090803115055.patch</filename>
            <type>text/plain</type>
            <size>25052</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjcyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDgtMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IFRlYWNoIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZSBhYm91dCBpc29sYXRlZCB3b3JsZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAzCisKKyAg
ICAgICAgV2Ugbm93IHNhdmUgYSB3ZWFrIGhhbmRsZSB0byB0aGUgb3JpZ2luYWwgY29udGV4dC4g
IFdlIHVzZSB0aGF0IGhhbmRsZQorICAgICAgICB0byBjYWxsIHRoZSB0aW1lb3V0IGluIHRoZSBy
aWdodCBjb250ZXh0IC8gd29ybGQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVv
dXQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbTo6V2lu
ZG93U2V0VGltZW91dEltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtl
ckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0VGltZW91dE9ySW50ZXJ2
YWwpOgorCiAyMDA5LTA4LTAzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjaGVkdWxlZEFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y2hlZHVsZWRBY3Rpb24uY3BwCShyZXZpc2lvbiA0NjU3MCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvU2NoZWR1bGVkQWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlv
bih2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZnVuYywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBhcmd2W10pCi0gICAgOiBtX2NvZGUoU3RyaW5nKCksIEtVUkwoKSwgMCkKK1NjaGVk
dWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRl
eHQsIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9jb2Rl
KFN0cmluZygpLCBLVVJMKCksIDApCiB7CisgICAgbV9jb250ZXh0Lm1ha2VXZWFrKCk7CiAgICAg
bV9mdW5jdGlvbiA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvbj46Ok5ldyhmdW5jKTsKIAog
I2lmbmRlZiBOREVCVUcKQEAgLTYwLDcgKzYyLDcgQEAgU2NoZWR1bGVkQWN0aW9uOjpTY2hlZHVs
ZWRBY3Rpb24odjg6OkhhbgogICAgICAgICAgICAgbV9hcmd2W2ldID0gdjg6OlBlcnNpc3RlbnQ8
djg6OlZhbHVlPjo6TmV3KGFyZ3ZbaV0pOwogCiAjaWZuZGVmIE5ERUJVRwotICAgIFY4R0NDb250
cm9sbGVyOjpyZWdpc3Rlckdsb2JhbEhhbmRsZShTQ0hFRFVMRURfQUNUSU9OLCB0aGlzLCBtX2Fy
Z3ZbaV0pOworICAgICAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxl
KFNDSEVEVUxFRF9BQ1RJT04sIHRoaXMsIG1fYXJndltpXSk7CiAjZW5kaWYKICAgICAgICAgfQog
ICAgIH0gZWxzZQpAQCAtMTA2LDcgKzEwOCw3IEBAIHZvaWQgU2NoZWR1bGVkQWN0aW9uOjpleGVj
dXRlKFY4UHJveHkqIHAKICAgICBBU1NFUlQocHJveHkpOwogCiAgICAgdjg6OkhhbmRsZVNjb3Bl
IGhhbmRsZVNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gcHJv
eHktPmNvbnRleHQoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBt
X2NvbnRleHQuZ2V0KCk7CiAgICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsgLy8gSlMgbWF5IG5vdCBiZSBlbmFibGVkLgogCkBAIC0xMzAsMTYgKzEzMiwxNiBAQCB2
b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZShXb3JrZXJDb250CiAgICAgLy8gSW4gYSBXb3Jr
ZXIsIHRoZSBleGVjdXRpb24gc2hvdWxkIGFsd2F5cyBoYXBwZW4gb24gYSB3b3JrZXIgdGhyZWFk
LgogICAgIEFTU0VSVCh3b3JrZXJDb250ZXh0LT50aHJlYWQoKS0+dGhyZWFkSUQoKSA9PSBjdXJy
ZW50VGhyZWFkKCkpOwogICAKLSAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250
cm9sbGVyID0gd29ya2VyQ29udGV4dC0+c2NyaXB0KCk7Ci0KICAgICBpZiAoIW1fZnVuY3Rpb24u
SXNFbXB0eSgpICYmIG1fZnVuY3Rpb24tPklzRnVuY3Rpb24oKSkgewogICAgICAgICB2ODo6SGFu
ZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gdjhD
b250ZXh0ID0gc2NyaXB0Q29udHJvbGxlci0+cHJveHkoKS0+R2V0Q29udGV4dCgpOworICAgICAg
ICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBtX2NvbnRleHQuZ2V0KCk7CiAg
ICAgICAgIEFTU0VSVCghdjhDb250ZXh0LklzRW1wdHkoKSk7CiAgICAgICAgIHY4OjpDb250ZXh0
OjpTY29wZSBzY29wZSh2OENvbnRleHQpOwogICAgICAgICBtX2Z1bmN0aW9uLT5DYWxsKHY4Q29u
dGV4dC0+R2xvYmFsKCksIG1fYXJnYywgbV9hcmd2KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2Ug
eworICAgICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gd29y
a2VyQ29udGV4dC0+c2NyaXB0KCk7CiAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmV2YWx1YXRl
KG1fY29kZSk7CisgICAgfQogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
U2NoZWR1bGVkQWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hl
ZHVsZWRBY3Rpb24uaAkocmV2aXNpb24gNDY1NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
aGVkdWxlZEFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVm
IFNjaGVkdWxlZEFjdGlvbl9oCiAjZGVmaW5lIFNjaGVkdWxlZEFjdGlvbl9oCiAKKyNpbmNsdWRl
ICJPd25IYW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAKICNpbmNsdWRl
IDx2OC5oPgpAQCAtNDQsMTIgKzQ1LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNs
YXNzIFNjaGVkdWxlZEFjdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBTY2hlZHVsZWRBY3Rp
b24odjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGFyZ3ZbXSk7Ci0gICAgICAgIGV4cGxpY2l0IFNjaGVkdWxlZEFjdGlvbihjb25zdCBXZWJD
b3JlOjpTdHJpbmcmIGNvZGUsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwoKSkKLSAgICAgICAgICAg
IDogbV9hcmdjKDApCisgICAgICAgIFNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpDb250
ZXh0Piwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGFyZ3ZbXSk7CisgICAgICAgIGV4cGxpY2l0IFNjaGVkdWxlZEFjdGlvbih2ODo6SGFu
ZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0LCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIGNvZGUsIGNv
bnN0IEtVUkwmIHVybCA9IEtVUkwoKSkKKyAgICAgICAgICAgIDogbV9jb250ZXh0KGNvbnRleHQp
CisgICAgICAgICAgICAsIG1fYXJnYygwKQogICAgICAgICAgICAgLCBtX2FyZ3YoMCkKICAgICAg
ICAgICAgICwgbV9jb2RlKGNvZGUsIHVybCkKICAgICAgICAgeworICAgICAgICAgICAgbV9jb250
ZXh0Lm1ha2VXZWFrKCk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIH5TY2hlZHVsZWRB
Y3Rpb24oKTsKQEAgLTYxLDYgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIGV4ZWN1dGUoV29ya2VyQ29udGV4dCopOwogI2VuZGlmCiAKKyAgICAgICAgT3duSGFuZGxl
PHY4OjpDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvbj4gbV9mdW5jdGlvbjsKICAgICAgICAgaW50IG1fYXJnYzsKICAgICAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6OlZhbHVlPiogbV9hcmd2OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gNDY1NzApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY1LDE0ICs2NSwxOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206Oldp
bmRvd1NlCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKICAgICBET01XaW5kb3cq
IGltcCA9IFY4RE9NV3JhcHBlcjo6Y29udmVydFRvTmF0aXZlT2JqZWN0PERPTVdpbmRvdz4oVjhD
bGFzc0luZGV4OjpET01XSU5ET1csIGFyZ3MuSG9sZGVyKCkpOworICAgIEZyYW1lKiBmcmFtZSA9
IGltcC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogCi0gICAgaWYgKCFpbXAtPmZyYW1lKCkpCisgICAgaWYgKCFWOFByb3h5OjpjYW5B
Y2Nlc3NGcmFtZShmcmFtZSwgdHJ1ZSkpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
CiAKLSAgICBpZiAoIVY4UHJveHk6OmNhbkFjY2Vzc0ZyYW1lKGltcC0+ZnJhbWUoKSwgdHJ1ZSkp
CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gVjhQcm94eTo6Y29udGV4
dChmcmFtZSk7CisgICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7CiAKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250
ZXh0ID0gc3RhdGljX2Nhc3Q8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+KGltcC0+ZnJhbWUoKS0+
ZG9jdW1lbnQoKSk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9
IHN0YXRpY19jYXN0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqPihmcmFtZS0+ZG9jdW1lbnQoKSk7
CiAKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZnVuY3Rpb24gPSBhcmdzWzBdOwogCkBAIC04
OCw3ICs5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6V2luZG93U2UKICAg
ICAgICAgaWYgKGZ1bmN0aW9uU3RyaW5nLmxlbmd0aCgpID09IDApCiAgICAgICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogCi0gICAgICAgIGlkID0gRE9NVGltZXI6Omluc3RhbGwoc2Ny
aXB0Q29udGV4dCwgbmV3IFNjaGVkdWxlZEFjdGlvbihmdW5jdGlvblN0cmluZyksIHRpbWVvdXQs
IHNpbmdsZVNob3QpOworICAgICAgICBpZCA9IERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdENvbnRl
eHQsIG5ldyBTY2hlZHVsZWRBY3Rpb24odjhDb250ZXh0LCBmdW5jdGlvblN0cmluZyksIHRpbWVv
dXQsIHNpbmdsZVNob3QpOwogICAgIH0gZWxzZSBpZiAoZnVuY3Rpb24tPklzRnVuY3Rpb24oKSkg
ewogICAgICAgICBpbnQgcGFyYW1Db3VudCA9IGFyZ3VtZW50Q291bnQgPj0gMiA/IGFyZ3VtZW50
Q291bnQgLSAyIDogMDsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4qIHBhcmFtcyA9IDA7
CkBAIC0xMDAsNyArMTA0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjpXaW5k
b3dTZQogICAgICAgICB9CiAKICAgICAgICAgLy8gcGFyYW1zIGlzIHBhc3NlZCB0byBhY3Rpb24s
IGFuZCByZWxlYXNlZCBpbiBhY3Rpb24ncyBkZXN0cnVjdG9yCi0gICAgICAgIFNjaGVkdWxlZEFj
dGlvbiogYWN0aW9uID0gbmV3IFNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
bj46OkNhc3QoZnVuY3Rpb24pLCBwYXJhbUNvdW50LCBwYXJhbXMpOworICAgICAgICBTY2hlZHVs
ZWRBY3Rpb24qIGFjdGlvbiA9IG5ldyBTY2hlZHVsZWRBY3Rpb24odjhDb250ZXh0LCB2ODo6SGFu
ZGxlPHY4OjpGdW5jdGlvbj46OkNhc3QoZnVuY3Rpb24pLCBwYXJhbUNvdW50LCBwYXJhbXMpOwog
CiAgICAgICAgIGRlbGV0ZVtdIHBhcmFtczsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA0NjU3
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDkgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFNldFRpbWVvdXRPckludGVydgogewogICAgIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQg
PSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9OYXRpdmU8V29ya2VyQ29udGV4dD4o
YXJncy5Ib2xkZXIoKSk7CiAKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQg
PSB3b3JrZXJDb250ZXh0LT5zY3JpcHQoKS0+cHJveHkoKS0+R2V0Q29udGV4dCgpOworICAgIEFT
U0VSVCghdjhDb250ZXh0LklzRW1wdHkoKSk7CisKICAgICBpbnQgYXJndW1lbnRDb3VudCA9IGFy
Z3MuTGVuZ3RoKCk7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwpAQCAtMTA2LDcgKzEwOSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBTZXRUaW1lb3V0T3JJbnRlcnYKIAogICAgIGlmIChmdW5jdGlvbi0+SXNTdHJpbmcoKSkgewog
ICAgICAgICBXZWJDb3JlOjpTdHJpbmcgc3RyaW5nRnVuY3Rpb24gPSB0b1dlYkNvcmVTdHJpbmco
ZnVuY3Rpb24pOwotICAgICAgICB0aW1lcklkID0gRE9NVGltZXI6Omluc3RhbGwod29ya2VyQ29u
dGV4dCwgbmV3IFNjaGVkdWxlZEFjdGlvbihzdHJpbmdGdW5jdGlvbiwgd29ya2VyQ29udGV4dC0+
dXJsKCkpLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKKyAgICAgICAgdGltZXJJZCA9IERPTVRpbWVy
OjppbnN0YWxsKHdvcmtlckNvbnRleHQsIG5ldyBTY2hlZHVsZWRBY3Rpb24odjhDb250ZXh0LCBz
dHJpbmdGdW5jdGlvbiwgd29ya2VyQ29udGV4dC0+dXJsKCkpLCB0aW1lb3V0LCBzaW5nbGVTaG90
KTsKICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uLT5Jc0Z1bmN0aW9uKCkpIHsKICAgICAgICAgc2l6
ZV90IHBhcmFtQ291bnQgPSBhcmd1bWVudENvdW50ID49IDIgPyBhcmd1bWVudENvdW50IC0gMiA6
IDA7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+KiBwYXJhbXMgPSAwOwpAQCAtMTE2LDcg
KzExOSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBTZXRUaW1lb3V0T3JJbnRlcnYKICAgICAg
ICAgICAgICAgICBwYXJhbXNbaV0gPSBhcmdzW2krMl07CiAgICAgICAgIH0KICAgICAgICAgLy8g
U2NoZWR1bGVkQWN0aW9uIHRha2VzIG93bmVyc2hpcCBvZiBhY3R1YWwgcGFyYW1zIGFuZCByZWxl
YXNlcyB0aGVtIGluIGl0cyBkZXN0cnVjdG9yLgotICAgICAgICBTY2hlZHVsZWRBY3Rpb24qIGFj
dGlvbiA9IG5ldyBTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+OjpDYXN0
KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwgcGFyYW1zKTsKKyAgICAgICAgU2NoZWR1bGVkQWN0aW9u
KiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4Q29udGV4dCwgdjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwgcGFyYW1zKTsKICAgICAgICAg
ZGVsZXRlIFtdIHBhcmFtczsKICAgICAgICAgdGltZXJJZCA9IERPTVRpbWVyOjppbnN0YWxsKHdv
cmtlckNvbnRleHQsIGFjdGlvbiwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAgICAgfSBlbHNlCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NjcyNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDA5LTA4LTAzICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1Y4XSBUZWFjaCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUgYWJvdXQgaXNvbGF0ZWQg
d29ybGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NzcwMworCisgICAgICAgIEFkZCB0ZXN0IGNvdmVyYWdlIGZvciB0aGUgaW50ZXJhY3Rpb24gYmV0
d2VlbiBzZXRUaW1lb3V0IGFuZCBpc29sYXRlZAorICAgICAgICB3b3JsZHMuICBSZW5hbWUgcXVl
dWVTY3JpcHRJbklzb2xhdGVkV29ybGQgdG8KKyAgICAgICAgZXZhbHVhdGVTY3JpcHRJbklzb2xh
dGVkV29ybGQgYmVjYXVzZSB3ZSBub3cgd2UganVzdCBldmFsdWF0ZSB0aGUKKyAgICAgICAgc2Ny
aXB0IGRpcmVjdGx5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL2FsbC13aW5kb3ctcHJvcGVydGllcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvaXNvbGF0ZWRXb3JsZC9hbGwtd2luZG93LXByb3RvdHlwZXMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYm9keS1wcm9wZXJ0aWVzLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2JvZHktcHJvdG90
eXBlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Ns
aWNrLWV2ZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL2RvY3VtZW50LW9wZW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvZG9jdW1lbnQtcHJvcGVydGllcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1wcm90b3R5cGUuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvZ2xvYmFsLXZhcmlhYmxlcy5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9pbWFnZS1w
cm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL2ltYWdlLXByb3RvdHlwZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2xvY2F0aW9uLXByb3RvdHlwZS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9udW1iZXItcHJvdG90eXBl
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL29iamVj
dC1wcm90b3R5cGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVk
V29ybGQvc3RyaW5nLXByb3RvdHlwZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctcHJvcGVydGllcy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3Ry
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0cmluZy5odG1sOiBBZGRlZC4KKwogMjAw
OS0wOC0wMyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2FsbC13aW5kb3ctcHJvcGVydGllcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9hbGwt
d2luZG93LXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gNDY1NzApCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYWxsLXdpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcgQEAgZm9yIChwIGluIHdpbmRvdykgewog
CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3JpcHRJbklz
b2xhdGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29s
YXRlZFdvcmxkKAogICAgICIoZnVuY3Rpb24oKSB7XG4iICsKICAgICAiICBmb3IgKHAgaW4gd2lu
ZG93KSB7XG4iICsKICAgICAiICAgIHZhciBvYmogPSB3aW5kb3dbcF07XG4iICsKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9hbGwtd2luZG93LXBy
b3RvdHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvYWxsLXdpbmRvdy1wcm90b3R5cGVzLmh0bWwJKHJldmlzaW9uIDQ2
NTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Fs
bC13aW5kb3ctcHJvdG90eXBlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBA
IGZvciAocCBpbiB3aW5kb3cpIHsKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250
cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiKGZ1bmN0aW9uKCkge1xuIiAr
CiAgICAgIiAgZm9yIChwIGluIHdpbmRvdykge1xuIiArCiAgICAgIiAgICB2YXIgb2JqID0gd2lu
ZG93W3BdO1xuIiArCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvYm9keS1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2JvZHktcHJvcGVydGllcy5odG1sCShy
ZXZpc2lvbiA0NjU3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ib2R5LXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcg
QEAKIGRvY3VtZW50LmJvZHkuZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29ybGQu
IjsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdElu
SXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklz
b2xhdGVkV29ybGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJIVE1MID0gZG9jdW1lbnQuYm9keS5mb28iKTsKIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2JvZHktcHJvdG90eXBlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2JvZHktcHJvdG90eXBlLmh0bWwJKHJldmlzaW9uIDQ2NTcwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2JvZHktcHJvdG90eXBlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiBkb2N1bWVudC5ib2R5Ll9fcHJvdG9fXy5m
b28gPSAiRkFJTDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5i
b2R5LmZvbyIpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRt
bAkocmV2aXNpb24gNDY1NzApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsNyArMTUs
NyBAQCBidC5jbGljaygpOwogZG9jdW1lbnQuYm9keS53b3JsZCA9ICdNYWluJzsKIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3Js
ZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXNvbGF0ZWRTY3JpcHQnKS5pbm5lckhUTUwpOwor
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaXNvbGF0ZWRTY3JpcHQnKS5pbm5lckhUTUwpOwogfQogPC9z
Y3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvZG9jdW1lbnQtb3Blbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1vcGVuLmh0bWwJKHJl
dmlzaW9uIDQ2NTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2RvY3VtZW50LW9wZW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAK
IHdpbmRvdy5vcGVuID0gZnVuY3Rpb24gKCkgeyBhbGVydCgiRkFJTDogVmlzaWJsZSBpbiBpc29s
YXRlZCB3b3JsZC4iKTsgfTsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZh
bHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCiAgICAgIndpbmRvdy5vcGVuID0gZnVuY3Rpb24g
KCkgeyBhbGVydCgnUEFTUycpOyB9O1xuIiArCiAgICAgImRvY3VtZW50Lm9wZW4oMSwgMiwgMyk7
Iik7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29y
bGQvZG9jdW1lbnQtcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1wcm9wZXJ0aWVzLmh0bWwJ
KHJldmlzaW9uIDQ2NTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2RvY3VtZW50LXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3
ICs2LDcgQEAKIGRvY3VtZW50LmZvbyA9ICJGQUlMOiBWaXNpYmxlIGluIGlzb2xhdGVkIHdvcmxk
LiI7CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3JpcHRJ
bklzb2xhdGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5J
c29sYXRlZFdvcmxkKAogICAgICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCA9IGRvY3VtZW50LmZvbyIpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvZG9jdW1lbnQtcHJvdG90eXBlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2RvY3VtZW50LXByb3RvdHlwZS5odG1sCShyZXZpc2lvbiA0NjU3MCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1wcm90b3R5
cGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKIGRvY3VtZW50Ll9fcHJvdG9f
Xy5mb28gPSAiRkFJTDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAor
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAg
ICAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVu
dC5mb28iKTsKIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL2dsb2JhbC12YXJpYWJsZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvZ2xvYmFsLXZhcmlh
Ymxlcy5odG1sCShyZXZpc2lvbiA0NjU3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvaXNvbGF0ZWRXb3JsZC9nbG9iYWwtdmFyaWFibGVzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYsNyArNiw3IEBACiB2YXIgZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29y
bGQuIjsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlw
dEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJ
bklzb2xhdGVkV29ybGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
aW5uZXJIVE1MID0gd2luZG93LmZvbyIpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvaW1hZ2UtcHJvcGVydGllcy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRX
b3JsZC9pbWFnZS1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDQ2NTcwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2ltYWdlLXByb3BlcnRpZXMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKIEltYWdlLmZvbyA9ICJGQUlMOiBWaXNp
YmxlIGluIGlzb2xhdGVkIHdvcmxkLiI7CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENv
bnRyb2xsZXIucXVldWVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9s
bGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IEltYWdlLmZvbyIpOwogfQogPC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvaW1h
Z2UtcHJvdG90eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2ltYWdlLXByb3RvdHlwZS5odG1sCShyZXZpc2lvbiA0NjU3
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9pbWFn
ZS1wcm90b3R5cGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKIEltYWdlLl9f
cHJvdG9fXy5mb28gPSAiRkFJTDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdv
cmxkKAorICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3Js
ZCgKICAgICAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBJ
bWFnZS5mb28iKTsKIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2xvY2F0aW9uLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbG9jYXRp
b24tcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiA0NjU3MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1wcm9wZXJ0aWVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiBsb2NhdGlvbi5mb28gPSAiRkFJTDogVmlzaWJs
ZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250
cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBsb2NhdGlvbi5mb28iKTsKIH0KIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2xv
Y2F0aW9uLXByb3RvdHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1wcm90b3R5cGUuaHRtbAkocmV2aXNp
b24gNDY1NzApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29y
bGQvbG9jYXRpb24tcHJvdG90eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBA
CiBsb2NhdGlvbi5fX3Byb3RvX18uZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29y
bGQuIjsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlw
dEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJ
bklzb2xhdGVkV29ybGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
aW5uZXJIVE1MID0gbG9jYXRpb24uZm9vIik7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9udW1iZXItcHJvdG90eXBlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL251bWJlci1wcm90b3R5cGUuaHRtbAkocmV2aXNpb24gNDY1NzApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbnVtYmVyLXByb3RvdHlwZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAogTnVtYmVyLnByb3RvdHlwZS5mb28g
PSAiRkFJTDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
IGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAoNDIpLmZvbyIpOwog
fQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvb2JqZWN0LXByb3RvdHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9vYmplY3QtcHJvdG90eXBlLmh0bWwJ
KHJldmlzaW9uIDQ2NTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL29iamVjdC1wcm90b3R5cGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2
LDcgQEAKIE9iamVjdC5wcm90b3R5cGUuZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQg
d29ybGQuIjsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNj
cmlwdEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3Jp
cHRJbklzb2xhdGVkV29ybGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
JykuaW5uZXJIVE1MID0ge30uZm9vIik7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9zdHJpbmctcHJvdG90eXBlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL3N0cmluZy1wcm90b3R5cGUuaHRtbAkocmV2aXNpb24gNDY1NzApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvc3RyaW5nLXByb3RvdHlwZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAogU3RyaW5nLnByb3RvdHlwZS5mb28gPSAi
RkFJTDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxh
eW91dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAnJy5mb28iKTsKIH0KIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwJKHJl
dmlzaW9uIDQ2NTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3
IEBACiB3aW5kb3cuZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29ybGQuIjsKIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVk
V29ybGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ID0gd2luZG93LmZvbyIpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24tZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29y
bGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRX
b3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1l
b3V0LWZ1bmN0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGRvbmUoKSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93LmZ1bmMg
PSBmdW5jdGlvbiAoKSB7CisgIGFsZXJ0KCJGQUlMOiBXcm9uZyBmdW5jdGlvbi4iKTsKKyAgZG9u
ZSgpOworfTsKK2RvY3VtZW50LmZvbyA9ICJGQUlMOiBXcm9uZyB3cmFwcGVycy4iOworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgICAgImRv
Y3VtZW50LmZvbyA9ICdQQVNTJztcbiIgKworICAgICJ3aW5kb3cuZnVuYyA9IGZ1bmN0aW9uICgp
IHtcbiIgKworICAgICIgIGFsZXJ0KGRvY3VtZW50LmZvbyk7XG4iICsKKyAgICAiICB3aW5kb3cu
bG9jYXRpb24gPSAnamF2YXNjcmlwdDpkb25lKCknO1xuIiArCisgICAgIn07XG4iICsKKyAgICAi
d2luZG93LnNldFRpbWVvdXQoZnVuYywgMCk7Iik7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGlt
ZW91dC1zdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0cmluZy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MKKwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRv
dy1zZXRUaW1lb3V0LXN0cmluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmcuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gZG9uZSgpIHsKKyAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7Cit9Cit3aW5kb3cuZnVuYyA9IGZ1bmN0aW9uICgpIHsKKyAgYWxlcnQoIkZBSUw6IFdyb25n
IGZ1bmN0aW9uLiIpOworICBkb25lKCk7Cit9OworZG9jdW1lbnQuZm9vID0gIkZBSUw6IFdyb25n
IHdyYXBwZXJzLiI7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNv
bGF0ZWRXb3JsZCgKKyAgICAiZG9jdW1lbnQuZm9vID0gJ1BBU1MnO1xuIiArCisgICAgIndpbmRv
dy5mdW5jID0gZnVuY3Rpb24gKCkge1xuIiArCisgICAgIiAgYWxlcnQoZG9jdW1lbnQuZm9vKTtc
biIgKworICAgICIgIHdpbmRvdy5sb2NhdGlvbiA9ICdqYXZhc2NyaXB0OmRvbmUoKSc7XG4iICsK
KyAgICAifTtcbiIgKworICAgICJ3aW5kb3cuc2V0VGltZW91dCgnZnVuYygpJywgMCk7Iik7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34113</attachid>
            <date>2009-08-04 20:14:49 -0700</date>
            <delta_ts>2009-08-04 23:57:37 -0700</delta_ts>
            <desc>Rename queueScriptInIsolatedWorld</desc>
            <filename>bug-27703-20090804201448.patch</filename>
            <type>text/plain</type>
            <size>13435</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NmM2MWI0Li4xZjc5NTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC01LDYgKzUsMzYgQEAKICAgICAgICAg
W1Y4XSBUZWFjaCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUgYWJvdXQgaXNvbGF0ZWQgd29ybGRz
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcwMwog
CisgICAgICAgIFJlbmFtZSBxdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCB0byBldmFsdWF0ZVNj
cmlwdEluSXNvbGF0ZWRXb3JsZAorICAgICAgICBiZWNhdXNlIEkndmUgY2hhbmdlZCB0aGlzIEFQ
SSB0byBiZSBzeW5jaHJvbm91cyBpbnN0ZWFkIG9mIGFzeW5jaHJvbm91cworICAgICAgICB0byB3
b3JrIGFyb3VuZCBzb21lIHN0cmFuZ2UgYmVoYXZpb3IgaW4gdGhlIHdvcmtfcXVldWVfLiAgVHVy
bnMgb3V0IHdlCisgICAgICAgIGRvbid0IG5lZWQgdGhlIGNvbXBsZXhpdHkgb2YgYW4gYXN5bmNo
cm9ub3VzIEFQSSB0byB0ZXN0IHRoaXMgZmVhdHVyZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9hbGwtd2luZG93LXByb3BlcnRpZXMuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYWxsLXdpbmRvdy1wcm90b3R5
cGVzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Jv
ZHktcHJvcGVydGllcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ib2R5LXByb3RvdHlwZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC9jbGljay1ldmVudC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1vcGVuLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2RvY3VtZW50LXByb3BlcnRpZXMuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvZG9jdW1lbnQtcHJv
dG90eXBlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L2dsb2JhbC12YXJpYWJsZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvaW1hZ2UtcHJvcGVydGllcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9pbWFnZS1wcm90b3R5cGUuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbG9jYXRpb24tcHJvcGVydGllcy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1w
cm90b3R5cGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29y
bGQvbnVtYmVyLXByb3RvdHlwZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC9vYmplY3QtcHJvdG90eXBlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3N0cmluZy1wcm90b3R5cGUuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXByb3BlcnRpZXMuaHRt
bDoKKworMjAwOS0wOC0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtWOF0gVGVhY2ggU2No
ZWR1bGVkQWN0aW9uOjpleGVjdXRlIGFib3V0IGlzb2xhdGVkIHdvcmxkcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDMKKwogICAgICAgICBBZGQg
dGVzdCBjb3ZlcmFnZSBmb3IgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gc2V0VGltZW91dCBhbmQg
aXNvbGF0ZWQKICAgICAgICAgd29ybGRzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYWxsLXdpbmRvdy1wcm9wZXJ0aWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYWxsLXdpbmRv
dy1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggMDg5ZWY4Yi4uNTNkMzZiZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2FsbC13aW5kb3ctcHJv
cGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9hbGwtd2luZG93LXByb3BlcnRpZXMuaHRtbApAQCAtMTEsNyArMTEsNyBAQCBmb3Ig
KHAgaW4gd2luZG93KSB7CiAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZh
bHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCiAgICAgIihmdW5jdGlvbigpIHtcbiIgKwogICAg
ICIgIGZvciAocCBpbiB3aW5kb3cpIHtcbiIgKwogICAgICIgICAgdmFyIG9iaiA9IHdpbmRvd1tw
XTtcbiIgKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2FsbC13aW5kb3ctcHJvdG90eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2FsbC13aW5kb3ctcHJvdG90eXBlcy5odG1sCmlu
ZGV4IDFlNDI3NWIuLmRhNWZjMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9hbGwtd2luZG93LXByb3RvdHlwZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYWxsLXdpbmRvdy1w
cm90b3R5cGVzLmh0bWwKQEAgLTExLDcgKzExLDcgQEAgZm9yIChwIGluIHdpbmRvdykgewogCiBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3JpcHRJbklzb2xh
dGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRl
ZFdvcmxkKAogICAgICIoZnVuY3Rpb24oKSB7XG4iICsKICAgICAiICBmb3IgKHAgaW4gd2luZG93
KSB7XG4iICsKICAgICAiICAgIHZhciBvYmogPSB3aW5kb3dbcF07XG4iICsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ib2R5LXByb3Bl
cnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9ib2R5LXByb3BlcnRpZXMuaHRtbAppbmRleCA2ODZlNzg3Li5mZWY3ZDg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYm9keS1wcm9w
ZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2JvZHktcHJvcGVydGllcy5odG1sCkBAIC02LDcgKzYsNyBAQAogZG9jdW1lbnQuYm9k
eS5mb28gPSAiRkFJTDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAor
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAg
ICAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVu
dC5ib2R5LmZvbyIpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYm9keS1wcm90b3R5cGUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ib2R5LXByb3RvdHlwZS5o
dG1sCmluZGV4IGU1OGM3MmUuLmQ4YTllNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ib2R5LXByb3RvdHlwZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ib2R5LXByb3RvdHlw
ZS5odG1sCkBAIC02LDcgKzYsNyBAQAogZG9jdW1lbnQuYm9keS5fX3Byb3RvX18uZm9vID0gIkZB
SUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29ybGQuIjsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlv
dXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCiAgICAgImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuYm9keS5mb28i
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAppbmRleCA0YTM5OTI2
Li4yNjg0MWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbApAQCAtMTUsNyArMTUsNyBA
QCBidC5jbGljaygpOwogZG9jdW1lbnQuYm9keS53b3JsZCA9ICdNYWluJzsKIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXNvbGF0ZWRTY3JpcHQnKS5pbm5lckhUTUwpOworICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaXNvbGF0ZWRTY3JpcHQnKS5pbm5lckhUTUwpOwogfQogPC9zY3Jp
cHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2lzb2xhdGVkV29ybGQvZG9jdW1lbnQtb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2RvY3VtZW50LW9wZW4uaHRtbAppbmRleCA2ZWUxNDc1
Li43YmU0ZjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvZG9jdW1lbnQtb3Blbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1vcGVuLmh0bWwKQEAgLTYsNyArNiw3
IEBACiB3aW5kb3cub3BlbiA9IGZ1bmN0aW9uICgpIHsgYWxlcnQoIkZBSUw6IFZpc2libGUgaW4g
aXNvbGF0ZWQgd29ybGQuIik7IH07CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRy
b2xsZXIucXVldWVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVy
LmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICJ3aW5kb3cub3BlbiA9IGZ1bmN0
aW9uICgpIHsgYWxlcnQoJ1BBU1MnKTsgfTtcbiIgKwogICAgICJkb2N1bWVudC5vcGVuKDEsIDIs
IDMpOyIpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2RvY3VtZW50LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1wcm9wZXJ0aWVzLmh0bWwKaW5k
ZXggNzA1N2UyYS4uOTBkZDhjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2RvY3VtZW50LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvZG9jdW1lbnQtcHJvcGVy
dGllcy5odG1sCkBAIC02LDcgKzYsNyBAQAogZG9jdW1lbnQuZm9vID0gIkZBSUw6IFZpc2libGUg
aW4gaXNvbGF0ZWQgd29ybGQuIjsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJv
bGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZm9vIik7CiB9CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9kb2N1bWVudC1wcm90b3R5cGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC9kb2N1bWVudC1wcm90b3R5cGUuaHRtbAppbmRleCBmNTRlYjUxLi41
MmM2MGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvZG9jdW1lbnQtcHJvdG90eXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2RvY3VtZW50LXByb3RvdHlwZS5odG1sCkBAIC02
LDcgKzYsNyBAQAogZG9jdW1lbnQuX19wcm90b19fLmZvbyA9ICJGQUlMOiBWaXNpYmxlIGluIGlz
b2xhdGVkIHdvcmxkLiI7CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cXVldWVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1
YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmZvbyIpOwogfQogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvZ2xv
YmFsLXZhcmlhYmxlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2dsb2JhbC12YXJpYWJsZXMuaHRtbAppbmRleCA5MjU5YjgzLi5jMGQxYzk0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQv
Z2xvYmFsLXZhcmlhYmxlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC9nbG9iYWwtdmFyaWFibGVzLmh0bWwKQEAgLTYsNyArNiw3IEBACiB2
YXIgZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29ybGQuIjsKIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgK
KyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCiAg
ICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gd2luZG93
LmZvbyIpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvaW1hZ2UtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2ltYWdlLXByb3BlcnRpZXMuaHRt
bAppbmRleCBmMzdlYzE5Li4yNjE3M2VkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvaW1hZ2UtcHJvcGVydGllcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9pbWFnZS1wcm9wZXJ0
aWVzLmh0bWwKQEAgLTYsNyArNiw3IEBACiBJbWFnZS5mb28gPSAiRkFJTDogVmlzaWJsZSBpbiBp
c29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVy
LnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFs
dWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgPSBJbWFnZS5mb28iKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2ltYWdl
LXByb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2ltYWdlLXByb3RvdHlwZS5odG1sCmluZGV4IGE2MzkxZDIuLmQ0ZjEwNGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9pbWFn
ZS1wcm90b3R5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvaW1hZ2UtcHJvdG90eXBlLmh0bWwKQEAgLTYsNyArNiw3IEBACiBJbWFnZS5f
X3Byb3RvX18uZm9vID0gIkZBSUw6IFZpc2libGUgaW4gaXNvbGF0ZWQgd29ybGQuIjsKIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRX
b3JsZCgKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29y
bGQoCiAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0g
SW1hZ2UuZm9vIik7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1wcm9wZXJ0aWVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbG9jYXRpb24tcHJv
cGVydGllcy5odG1sCmluZGV4IDA4ZDFhZmMuLjdkMzM4ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1wcm9wZXJ0aWVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L2xvY2F0aW9uLXByb3BlcnRpZXMuaHRtbApAQCAtNiw3ICs2LDcgQEAKIGxvY2F0aW9uLmZvbyA9
ICJGQUlMOiBWaXNpYmxlIGluIGlzb2xhdGVkIHdvcmxkLiI7CiBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
bGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgIGxheW91
dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGxvY2F0aW9uLmZvbyIp
OwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvbG9jYXRpb24tcHJvdG90eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbG9jYXRpb24tcHJvdG90eXBlLmh0bWwK
aW5kZXggNTIwMmFhOC4uMzcxYmE2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2xvY2F0aW9uLXByb3RvdHlwZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9sb2NhdGlvbi1wcm90
b3R5cGUuaHRtbApAQCAtNiw3ICs2LDcgQEAKIGxvY2F0aW9uLl9fcHJvdG9fXy5mb28gPSAiRkFJ
TDogVmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewogICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91
dFRlc3RDb250cm9sbGVyLnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBsb2NhdGlvbi5mb28iKTsKIH0K
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL251bWJlci1wcm90b3R5cGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9udW1iZXItcHJvdG90eXBlLmh0bWwKaW5kZXggZWNl
ZWNkOC4uOGZmODc1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9pc29sYXRlZFdvcmxkL251bWJlci1wcm90b3R5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbnVtYmVyLXByb3RvdHlwZS5odG1sCkBA
IC02LDcgKzYsNyBAQAogTnVtYmVyLnByb3RvdHlwZS5mb28gPSAiRkFJTDogVmlzaWJsZSBpbiBp
c29sYXRlZCB3b3JsZC4iOwogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVy
LnF1ZXVlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAorICBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFs
dWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgPSAoNDIpLmZvbyIpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvb2JqZWN0
LXByb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL29iamVjdC1wcm90b3R5cGUuaHRtbAppbmRleCBkYzYyNzUyLi41ZGY3ZGM3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvb2Jq
ZWN0LXByb3RvdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC9vYmplY3QtcHJvdG90eXBlLmh0bWwKQEAgLTYsNyArNiw3IEBACiBPYmpl
Y3QucHJvdG90eXBlLmZvbyA9ICJGQUlMOiBWaXNpYmxlIGluIGlzb2xhdGVkIHdvcmxkLiI7CiBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3JpcHRJbklzb2xh
dGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRl
ZFdvcmxkKAogICAgICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRN
TCA9IHt9LmZvbyIpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvc3RyaW5nLXByb3RvdHlwZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3N0cmluZy1wcm90b3R5
cGUuaHRtbAppbmRleCA0MWI4ZWQyLi4zYTA1ZmNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvc3RyaW5nLXByb3RvdHlwZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9zdHJpbmct
cHJvdG90eXBlLmh0bWwKQEAgLTYsNyArNiw3IEBACiBTdHJpbmcucHJvdG90eXBlLmZvbyA9ICJG
QUlMOiBWaXNpYmxlIGluIGlzb2xhdGVkIHdvcmxkLiI7CiBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5
b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgIGxheW91dFRl
c3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICcnLmZvbyIpOwogfQogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvd2luZG93LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctcHJvcGVydGllcy5odG1sCmluZGV4IGI3NGFi
YzQuLmQxY2U1MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC93aW5kb3ctcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctcHJvcGVydGllcy5odG1sCkBA
IC02LDcgKzYsNyBAQAogd2luZG93LmZvbyA9ICJGQUlMOiBWaXNpYmxlIGluIGlzb2xhdGVkIHdv
cmxkLiI7CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVTY3Jp
cHRJbklzb2xhdGVkV29ybGQoCisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0
SW5Jc29sYXRlZFdvcmxkKAogICAgICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmlubmVySFRNTCA9IHdpbmRvdy5mb28iKTsKIH0KIDwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34114</attachid>
            <date>2009-08-04 20:14:54 -0700</date>
            <delta_ts>2009-09-11 01:11:01 -0700</delta_ts>
            <desc>Scheduled action</desc>
            <filename>bug-27703-20090804201453.patch</filename>
            <type>text/plain</type>
            <size>12666</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMjU0ZWVjLi45NmM2MWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDgt
MDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhdIFRlYWNoIFNjaGVkdWxlZEFjdGlvbjo6
ZXhlY3V0ZSBhYm91dCBpc29sYXRlZCB3b3JsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAzCisKKyAgICAgICAgQWRkIHRlc3QgY292ZXJhZ2Ug
Zm9yIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHNldFRpbWVvdXQgYW5kIGlzb2xhdGVkCisgICAg
ICAgIHdvcmxkcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1m
dW5jdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3RyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1l
b3V0LXN0cmluZy5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L3dpbmRvdy1zZXRUaW1lb3V0LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM3MDMy
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitBTEVSVDogUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ct
c2V0VGltZW91dC1mdW5jdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjQwZTk1Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24uaHRtbApAQCAt
MCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkb25lKCkgeworICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKK30KK3dpbmRvdy5mdW5jID0gZnVuY3Rpb24gKCkgeworICBhbGVydCgiRkFJTDogV3Jv
bmcgZnVuY3Rpb24uIik7CisgIGRvbmUoKTsKK307Citkb2N1bWVudC5mb28gPSAiRkFJTDogV3Jv
bmcgd3JhcHBlcnMuIjsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5J
c29sYXRlZFdvcmxkKAorICAgICJkb2N1bWVudC5mb28gPSAnUEFTUyc7XG4iICsKKyAgICAid2lu
ZG93LmZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4iICsKKyAgICAiICBhbGVydChkb2N1bWVudC5mb28p
O1xuIiArCisgICAgIiAgd2luZG93LmxvY2F0aW9uID0gJ2phdmFzY3JpcHQ6ZG9uZSgpJztcbiIg
KworICAgICJ9O1xuIiArCisgICAgIndpbmRvdy5zZXRUaW1lb3V0KGZ1bmMsIDApOyIpOworfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3RyaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljNzAzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3Ry
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ct
c2V0VGltZW91dC1zdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzJhNzE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0
LXN0cmluZy5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRvbmUo
KSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93LmZ1bmMgPSBmdW5jdGlvbiAoKSB7Cisg
IGFsZXJ0KCJGQUlMOiBXcm9uZyBmdW5jdGlvbi4iKTsKKyAgZG9uZSgpOworfTsKK2RvY3VtZW50
LmZvbyA9ICJGQUlMOiBXcm9uZyB3cmFwcGVycy4iOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgICAgImRvY3VtZW50LmZvbyA9ICdQQVNT
JztcbiIgKworICAgICJ3aW5kb3cuZnVuYyA9IGZ1bmN0aW9uICgpIHtcbiIgKworICAgICIgIGFs
ZXJ0KGRvY3VtZW50LmZvbyk7XG4iICsKKyAgICAiICB3aW5kb3cubG9jYXRpb24gPSAnamF2YXNj
cmlwdDpkb25lKCknO1xuIiArCisgICAgIn07XG4iICsKKyAgICAid2luZG93LnNldFRpbWVvdXQo
J2Z1bmMoKScsIDApOyIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1NDM2ZTEu
Ljg3M2M0OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMDgtMDQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbVjhdIFRlYWNoIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZSBhYm91dCBpc29sYXRlZCB3
b3JsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3
NzAzCisKKyAgICAgICAgV2Ugbm93IHNhdmUgYSB3ZWFrIGhhbmRsZSB0byB0aGUgb3JpZ2luYWwg
Y29udGV4dC4gIFdlIHVzZSB0aGF0IGhhbmRsZQorICAgICAgICB0byBjYWxsIHRoZSB0aW1lb3V0
IGluIHRoZSByaWdodCBjb250ZXh0IC8gd29ybGQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93
LXNldFRpbWVvdXQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjaGVkdWxl
ZEFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxl
ZEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2NoZWR1bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1
c3RvbTo6V2luZG93U2V0VGltZW91dEltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0VGltZW91
dE9ySW50ZXJ2YWwpOgorCiAyMDA5LTA4LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVnIDI3OTk0IC0gV0FJLUFSSUE6IGFyaWEtdmFsdWV0ZXh0
IG5lZWRzIHRvIGJlIGltcGxlbWVudGVkCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjaGVkdWxlZEFjdGlvbi5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlv
bi5jcHAKaW5kZXggMjk4ZjZiMS4uOTU2ZWUxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1
bGVkQWN0aW9uLmNwcApAQCAtNDQsOSArNDQsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
bj4gZnVuYywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pCi0gICAgOiBt
X2NvZGUoU3RyaW5nKCksIEtVUkwoKSwgMCkKK1NjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0
aW9uKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQsIHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uPiBmdW5jLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSkKKyAgICA6
IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9jb2RlKFN0cmluZygpLCBLVVJMKCksIDApCiB7
CisgICAgbV9jb250ZXh0Lm1ha2VXZWFrKCk7CiAgICAgbV9mdW5jdGlvbiA9IHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvbj46Ok5ldyhmdW5jKTsKIAogI2lmbmRlZiBOREVCVUcKQEAgLTYwLDcg
KzYyLDcgQEAgU2NoZWR1bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb24+IGZ1bmMsIGludCBhcmdjLCB2ODo6SGEKICAgICAgICAgICAgIG1fYXJndltpXSA9
IHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT46Ok5ldyhhcmd2W2ldKTsKIAogI2lmbmRlZiBOREVC
VUcKLSAgICBWOEdDQ29udHJvbGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoU0NIRURVTEVEX0FD
VElPTiwgdGhpcywgbV9hcmd2W2ldKTsKKyAgICAgICAgICAgIFY4R0NDb250cm9sbGVyOjpyZWdp
c3Rlckdsb2JhbEhhbmRsZShTQ0hFRFVMRURfQUNUSU9OLCB0aGlzLCBtX2FyZ3ZbaV0pOwogI2Vu
ZGlmCiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIFNjaGVk
dWxlZEFjdGlvbjo6ZXhlY3V0ZShWOFByb3h5KiBwcm94eSkKICAgICBBU1NFUlQocHJveHkpOwog
CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29u
dGV4dD4gdjhDb250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpD
b250ZXh0PiB2OENvbnRleHQgPSBtX2NvbnRleHQuZ2V0KCk7CiAgICAgaWYgKHY4Q29udGV4dC5J
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsgLy8gSlMgbWF5IG5vdCBiZSBlbmFibGVkLgogCkBA
IC0xMzAsMTYgKzEzMiwxNiBAQCB2b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZShXb3JrZXJD
b250ZXh0KiB3b3JrZXJDb250ZXh0KQogICAgIC8vIEluIGEgV29ya2VyLCB0aGUgZXhlY3V0aW9u
IHNob3VsZCBhbHdheXMgaGFwcGVuIG9uIGEgd29ya2VyIHRocmVhZC4KICAgICBBU1NFUlQod29y
a2VyQ29udGV4dC0+dGhyZWFkKCktPnRocmVhZElEKCkgPT0gY3VycmVudFRocmVhZCgpKTsKICAg
Ci0gICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IHdvcmtlckNv
bnRleHQtPnNjcmlwdCgpOwotCiAgICAgaWYgKCFtX2Z1bmN0aW9uLklzRW1wdHkoKSAmJiBtX2Z1
bmN0aW9uLT5Jc0Z1bmN0aW9uKCkpIHsKICAgICAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNj
b3BlOwotICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHNjcmlwdENv
bnRyb2xsZXItPnByb3h5KCktPkdldENvbnRleHQoKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gdjhDb250ZXh0ID0gbV9jb250ZXh0LmdldCgpOwogICAgICAgICBBU1NFUlQoIXY4
Q29udGV4dC5Jc0VtcHR5KCkpOwogICAgICAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUodjhD
b250ZXh0KTsKICAgICAgICAgbV9mdW5jdGlvbi0+Q2FsbCh2OENvbnRleHQtPkdsb2JhbCgpLCBt
X2FyZ2MsIG1fYXJndik7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgV29ya2Vy
U2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IHdvcmtlckNvbnRleHQtPnNjcmlw
dCgpOwogICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5ldmFsdWF0ZShtX2NvZGUpOworICAgIH0K
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFj
dGlvbi5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uaAppbmRleCA1MzY5
NGM3Li5lNDY3NTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFj
dGlvbi5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpZm5kZWYgU2NoZWR1bGVkQWN0aW9uX2gKICNkZWZpbmUgU2NoZWR1bGVk
QWN0aW9uX2gKIAorI2luY2x1ZGUgIk93bkhhbmRsZS5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKIAogI2luY2x1ZGUgPHY4Lmg+CkBAIC00NCwxMiArNDUsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCBhcmdj
LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKLSAgICAgICAgZXhwbGljaXQgU2NoZWR1
bGVkQWN0aW9uKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgY29kZSwgY29uc3QgS1VSTCYgdXJsID0g
S1VSTCgpKQotICAgICAgICAgICAgOiBtX2FyZ2MoMCkKKyAgICAgICAgU2NoZWR1bGVkQWN0aW9u
KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+LCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCBh
cmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKKyAgICAgICAgZXhwbGljaXQgU2No
ZWR1bGVkQWN0aW9uKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQsIGNvbnN0IFdlYkNv
cmU6OlN0cmluZyYgY29kZSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpKQorICAgICAgICAgICAg
OiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAgICAgICAgICwgbV9hcmdjKDApCiAgICAgICAgICAg
ICAsIG1fYXJndigwKQogICAgICAgICAgICAgLCBtX2NvZGUoY29kZSwgdXJsKQogICAgICAgICB7
CisgICAgICAgICAgICBtX2NvbnRleHQubWFrZVdlYWsoKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZpcnR1YWwgflNjaGVkdWxlZEFjdGlvbigpOwpAQCAtNjEsNiArNjQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZXhlY3V0ZShXb3JrZXJDb250ZXh0Kik7CiAjZW5kaWYK
IAorICAgICAgICBPd25IYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgdjg6
OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uPiBtX2Z1bmN0aW9uOwogICAgICAgICBpbnQgbV9hcmdj
OwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+KiBtX2FyZ3Y7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggN2QwYjll
Ni4uZDE0ODBkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01X
aW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2lu
ZG93Q3VzdG9tLmNwcApAQCAtNjUsMTQgKzY1LDE4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEN1c3RvbTo6V2luZG93U2V0VGltZW91dEltcGwoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywK
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAogICAgIERPTVdpbmRvdyogaW1wID0g
VjhET01XcmFwcGVyOjpjb252ZXJ0VG9OYXRpdmVPYmplY3Q8RE9NV2luZG93PihWOENsYXNzSW5k
ZXg6OkRPTVdJTkRPVywgYXJncy5Ib2xkZXIoKSk7CisgICAgRnJhbWUqIGZyYW1lID0gaW1wLT5m
cmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
CiAKLSAgICBpZiAoIWltcC0+ZnJhbWUoKSkKKyAgICBpZiAoIVY4UHJveHk6OmNhbkFjY2Vzc0Zy
YW1lKGZyYW1lLCB0cnVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAg
IGlmICghVjhQcm94eTo6Y2FuQWNjZXNzRnJhbWUoaW1wLT5mcmFtZSgpLCB0cnVlKSkKKyAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBWOFByb3h5Ojpjb250ZXh0KGZyYW1l
KTsKKyAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBz
dGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kj4oaW1wLT5mcmFtZSgpLT5kb2N1bWVu
dCgpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+KGZyYW1lLT5kb2N1bWVudCgpKTsKIAogICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBmdW5jdGlvbiA9IGFyZ3NbMF07CiAKQEAgLTg4LDcgKzky
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjpXaW5kb3dTZXRUaW1lb3V0SW1w
bChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAogICAgICAgICBpZiAoZnVuY3Rpb25TdHJpbmcu
bGVuZ3RoKCkgPT0gMCkKICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAg
ICAgICAgaWQgPSBET01UaW1lcjo6aW5zdGFsbChzY3JpcHRDb250ZXh0LCBuZXcgU2NoZWR1bGVk
QWN0aW9uKGZ1bmN0aW9uU3RyaW5nKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIGlk
ID0gRE9NVGltZXI6Omluc3RhbGwoc2NyaXB0Q29udGV4dCwgbmV3IFNjaGVkdWxlZEFjdGlvbih2
OENvbnRleHQsIGZ1bmN0aW9uU3RyaW5nKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAgICAgfSBl
bHNlIGlmIChmdW5jdGlvbi0+SXNGdW5jdGlvbigpKSB7CiAgICAgICAgIGludCBwYXJhbUNvdW50
ID0gYXJndW1lbnRDb3VudCA+PSAyID8gYXJndW1lbnRDb3VudCAtIDIgOiAwOwogICAgICAgICB2
ODo6TG9jYWw8djg6OlZhbHVlPiogcGFyYW1zID0gMDsKQEAgLTEwMCw3ICsxMDQsNyBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OldpbmRvd1NldFRpbWVvdXRJbXBsKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MsCiAgICAgICAgIH0KIAogICAgICAgICAvLyBwYXJhbXMgaXMgcGFz
c2VkIHRvIGFjdGlvbiwgYW5kIHJlbGVhc2VkIGluIGFjdGlvbidzIGRlc3RydWN0b3IKLSAgICAg
ICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4OjpIYW5k
bGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlvbiksIHBhcmFtQ291bnQsIHBhcmFtcyk7Cisg
ICAgICAgIFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uID0gbmV3IFNjaGVkdWxlZEFjdGlvbih2OENv
bnRleHQsIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlvbiksIHBhcmFtQ291
bnQsIHBhcmFtcyk7CiAKICAgICAgICAgZGVsZXRlW10gcGFyYW1zOwogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA5
ZTc5ZmE5Li44ZjMxNzhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdvcmtlckNvbnRleHRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTk2LDYgKzk2LDkgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFNldFRpbWVvdXRPckludGVydmFsKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Ms
IGJvb2wgc2luZ2wKIHsKICAgICBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gVjhET01X
cmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTmF0aXZlPFdvcmtlckNvbnRleHQ+KGFyZ3MuSG9s
ZGVyKCkpOwogCisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gd29ya2Vy
Q29udGV4dC0+c2NyaXB0KCktPnByb3h5KCktPkdldENvbnRleHQoKTsKKyAgICBBU1NFUlQoIXY4
Q29udGV4dC5Jc0VtcHR5KCkpOworCiAgICAgaW50IGFyZ3VtZW50Q291bnQgPSBhcmdzLkxlbmd0
aCgpOwogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKQEAgLTEwNiw3ICsxMDksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gU2V0VGlt
ZW91dE9ySW50ZXJ2YWwoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgYm9vbCBzaW5nbAogCiAg
ICAgaWYgKGZ1bmN0aW9uLT5Jc1N0cmluZygpKSB7CiAgICAgICAgIFdlYkNvcmU6OlN0cmluZyBz
dHJpbmdGdW5jdGlvbiA9IHRvV2ViQ29yZVN0cmluZyhmdW5jdGlvbik7Ci0gICAgICAgIHRpbWVy
SWQgPSBET01UaW1lcjo6aW5zdGFsbCh3b3JrZXJDb250ZXh0LCBuZXcgU2NoZWR1bGVkQWN0aW9u
KHN0cmluZ0Z1bmN0aW9uLCB3b3JrZXJDb250ZXh0LT51cmwoKSksIHRpbWVvdXQsIHNpbmdsZVNo
b3QpOworICAgICAgICB0aW1lcklkID0gRE9NVGltZXI6Omluc3RhbGwod29ya2VyQ29udGV4dCwg
bmV3IFNjaGVkdWxlZEFjdGlvbih2OENvbnRleHQsIHN0cmluZ0Z1bmN0aW9uLCB3b3JrZXJDb250
ZXh0LT51cmwoKSksIHRpbWVvdXQsIHNpbmdsZVNob3QpOwogICAgIH0gZWxzZSBpZiAoZnVuY3Rp
b24tPklzRnVuY3Rpb24oKSkgewogICAgICAgICBzaXplX3QgcGFyYW1Db3VudCA9IGFyZ3VtZW50
Q291bnQgPj0gMiA/IGFyZ3VtZW50Q291bnQgLSAyIDogMDsKICAgICAgICAgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4qIHBhcmFtcyA9IDA7CkBAIC0xMTYsNyArMTE5LDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFNldFRpbWVvdXRPckludGVydmFsKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJv
b2wgc2luZ2wKICAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBhcmdzW2krMl07CiAgICAgICAg
IH0KICAgICAgICAgLy8gU2NoZWR1bGVkQWN0aW9uIHRha2VzIG93bmVyc2hpcCBvZiBhY3R1YWwg
cGFyYW1zIGFuZCByZWxlYXNlcyB0aGVtIGluIGl0cyBkZXN0cnVjdG9yLgotICAgICAgICBTY2hl
ZHVsZWRBY3Rpb24qIGFjdGlvbiA9IG5ldyBTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwgcGFyYW1zKTsKKyAgICAgICAg
U2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4Q29udGV4dCwg
djg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwgcGFy
YW1zKTsKICAgICAgICAgZGVsZXRlIFtdIHBhcmFtczsKICAgICAgICAgdGltZXJJZCA9IERPTVRp
bWVyOjppbnN0YWxsKHdvcmtlckNvbnRleHQsIGFjdGlvbiwgdGltZW91dCwgc2luZ2xlU2hvdCk7
CiAgICAgfSBlbHNl
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39414</attachid>
            <date>2009-09-11 01:11:32 -0700</date>
            <delta_ts>2009-09-25 00:59:36 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27703-20090911011130.patch</filename>
            <type>text/plain</type>
            <size>10587</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDktMTEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IFRlYWNoIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZSBhYm91dCBpc29sYXRlZCB3b3JsZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAzCisKKyAg
ICAgICAgV2Ugbm93IHNhdmUgYSBoYW5kbGUgdG8gdGhlIG9yaWdpbmFsIGNvbnRleHQuICBXZSB1
c2UgdGhhdCBoYW5kbGUgdG8KKyAgICAgICAgY2FsbCB0aGUgdGltZW91dCBpbiB0aGUgcmlnaHQg
Y29udGV4dCAvIHdvcmxkLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24uaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0
cmluZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEFj
dGlvbjo6U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhE
T01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b206OldpbmRvd1Nl
dFRpbWVvdXRJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldFRpbWVvdXRPckludGVydmFsKToK
KwogMjAwOS0wOS0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVk
dWxlZEFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVs
ZWRBY3Rpb24uY3BwCShyZXZpc2lvbiA0ODI4MykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvU2No
ZWR1bGVkQWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOCArNDQsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVNjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGFyZ3ZbXSkKLSAgICA6IG1fY29kZShTdHJpbmcoKSwgS1VSTCgpLCAwKQorU2NoZWR1bGVkQWN0
aW9uOjpTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmMsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gYXJndltdKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NvZGUoU3RyaW5n
KCksIEtVUkwoKSwgMCkKIHsKICAgICBtX2Z1bmN0aW9uID0gdjg6OlBlcnNpc3RlbnQ8djg6OkZ1
bmN0aW9uPjo6TmV3KGZ1bmMpOwogCkBAIC0xMDYsNyArMTA3LDcgQEAgdm9pZCBTY2hlZHVsZWRB
Y3Rpb246OmV4ZWN1dGUoVjhQcm94eSogcAogICAgIEFTU0VSVChwcm94eSk7CiAKICAgICB2ODo6
SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiB2OENv
bnRleHQgPSBwcm94eS0+Y29udGV4dCgpOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4
Q29udGV4dCA9IG1fY29udGV4dC5nZXQoKTsKICAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOyAvLyBKUyBtYXkgbm90IGJlIGVuYWJsZWQuCiAKQEAgLTEzNCw3ICsx
MzUsNyBAQCB2b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZShXb3JrZXJDb250CiAKICAgICBp
ZiAoIW1fZnVuY3Rpb24uSXNFbXB0eSgpICYmIG1fZnVuY3Rpb24tPklzRnVuY3Rpb24oKSkgewog
ICAgICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgICAgIHY4OjpMb2NhbDx2
ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gc2NyaXB0Q29udHJvbGxlci0+cHJveHkoKS0+Y29udGV4
dCgpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBtX2NvbnRl
eHQuZ2V0KCk7CiAgICAgICAgIEFTU0VSVCghdjhDb250ZXh0LklzRW1wdHkoKSk7CiAgICAgICAg
IHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpOwogICAgICAgICBtX2Z1bmN0aW9u
LT5DYWxsKHY4Q29udGV4dC0+R2xvYmFsKCksIG1fYXJnYywgbV9hcmd2KTsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uaAkocmV2aXNpb24gNDgyODMpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw5IEBACiAjaWZuZGVmIFNjaGVkdWxlZEFjdGlvbl9oCiAjZGVmaW5lIFNjaGVkdWxlZEFjdGlv
bl9oCiAKKyNpbmNsdWRlICJPd25IYW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2Rl
LmgiCisjaW5jbHVkZSAiVjhHQ0NvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgPHY4Lmg+CiAKQEAg
LTQ0LDkgKzQ2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNjaGVkdWxl
ZEFjdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb24+LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSk7
Ci0gICAgICAgIGV4cGxpY2l0IFNjaGVkdWxlZEFjdGlvbihjb25zdCBXZWJDb3JlOjpTdHJpbmcm
IGNvZGUsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwoKSkKLSAgICAgICAgICAgIDogbV9hcmdjKDAp
CisgICAgICAgIFNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpDb250ZXh0Piwgdjg6Okhh
bmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3Zb
XSk7CisgICAgICAgIGV4cGxpY2l0IFNjaGVkdWxlZEFjdGlvbih2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiBjb250ZXh0LCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIGNvZGUsIGNvbnN0IEtVUkwmIHVy
bCA9IEtVUkwoKSkKKyAgICAgICAgICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgICAgICAg
ICAsIG1fYXJnYygwKQogICAgICAgICAgICAgLCBtX2FyZ3YoMCkKICAgICAgICAgICAgICwgbV9j
b2RlKGNvZGUsIHVybCkKICAgICAgICAgewpAQCAtNjEsNiArNjQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgZXhlY3V0ZShXb3JrZXJDb250ZXh0Kik7CiAjZW5kaWYKIAor
ICAgICAgICBPd25IYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uPiBtX2Z1bmN0aW9uOwogICAgICAgICBpbnQgbV9hcmdjOwog
ICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+KiBtX2FyZ3Y7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lv
biA0ODI4MykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhDdXN0b206OldpbmRvd1NlCiAgICAgICAgIH0KIAogICAgICAgICAvLyBwYXJhbXMgaXMg
cGFzc2VkIHRvIGFjdGlvbiwgYW5kIHJlbGVhc2VkIGluIGFjdGlvbidzIGRlc3RydWN0b3IKLSAg
ICAgICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChmdW5jdGlvbiksIHBhcmFtQ291bnQsIHBhcmFtcyk7
CisgICAgICAgIFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uID0gbmV3IFNjaGVkdWxlZEFjdGlvbihW
OFByb3h5Ojpjb250ZXh0KGltcC0+ZnJhbWUoKSksIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6
Q2FzdChmdW5jdGlvbiksIHBhcmFtQ291bnQsIHBhcmFtcyk7CiAKICAgICAgICAgZGVsZXRlW10g
cGFyYW1zOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3Vz
dG9tOjpXaW5kb3dTZQogICAgICAgICBpZiAoZnVuY3Rpb25TdHJpbmcubGVuZ3RoKCkgPT0gMCkK
ICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAgICAgICAgaWQgPSBET01U
aW1lcjo6aW5zdGFsbChzY3JpcHRDb250ZXh0LCBuZXcgU2NoZWR1bGVkQWN0aW9uKGZ1bmN0aW9u
U3RyaW5nKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIGlkID0gRE9NVGltZXI6Omlu
c3RhbGwoc2NyaXB0Q29udGV4dCwgbmV3IFNjaGVkdWxlZEFjdGlvbihWOFByb3h5Ojpjb250ZXh0
KGltcC0+ZnJhbWUoKSksIGZ1bmN0aW9uU3RyaW5nKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcoaWQpOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwCShy
ZXZpc2lvbiA0ODI4MykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29u
dGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw5ICsxMDMsMTAgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFNldFRpbWVvdXRPckludGVydgogICAgIGludDMyX3QgdGltZW91dCA9
IGFyZ3VtZW50Q291bnQgPj0gMiA/IGFyZ3NbMV0tPkludDMyVmFsdWUoKSA6IDA7CiAgICAgaW50
IHRpbWVySWQ7CiAKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB3b3Jr
ZXJDb250ZXh0LT5zY3JpcHQoKS0+cHJveHkoKS0+Y29udGV4dCgpOwogICAgIGlmIChmdW5jdGlv
bi0+SXNTdHJpbmcoKSkgewogICAgICAgICBXZWJDb3JlOjpTdHJpbmcgc3RyaW5nRnVuY3Rpb24g
PSB0b1dlYkNvcmVTdHJpbmcoZnVuY3Rpb24pOwotICAgICAgICB0aW1lcklkID0gRE9NVGltZXI6
Omluc3RhbGwod29ya2VyQ29udGV4dCwgbmV3IFNjaGVkdWxlZEFjdGlvbihzdHJpbmdGdW5jdGlv
biwgd29ya2VyQ29udGV4dC0+dXJsKCkpLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKKyAgICAgICAg
dGltZXJJZCA9IERPTVRpbWVyOjppbnN0YWxsKHdvcmtlckNvbnRleHQsIG5ldyBTY2hlZHVsZWRB
Y3Rpb24odjhDb250ZXh0LCBzdHJpbmdGdW5jdGlvbiwgd29ya2VyQ29udGV4dC0+dXJsKCkpLCB0
aW1lb3V0LCBzaW5nbGVTaG90KTsKICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uLT5Jc0Z1bmN0aW9u
KCkpIHsKICAgICAgICAgc2l6ZV90IHBhcmFtQ291bnQgPSBhcmd1bWVudENvdW50ID49IDIgPyBh
cmd1bWVudENvdW50IC0gMiA6IDA7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+KiBwYXJh
bXMgPSAwOwpAQCAtMTE1LDcgKzExNiw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBTZXRUaW1l
b3V0T3JJbnRlcnYKICAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBhcmdzW2krMl07CiAgICAg
ICAgIH0KICAgICAgICAgLy8gU2NoZWR1bGVkQWN0aW9uIHRha2VzIG93bmVyc2hpcCBvZiBhY3R1
YWwgcGFyYW1zIGFuZCByZWxlYXNlcyB0aGVtIGluIGl0cyBkZXN0cnVjdG9yLgotICAgICAgICBT
Y2hlZHVsZWRBY3Rpb24qIGFjdGlvbiA9IG5ldyBTY2hlZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2
ODo6RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwgcGFyYW1zKTsKKyAgICAg
ICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSBuZXcgU2NoZWR1bGVkQWN0aW9uKHY4Q29udGV4
dCwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwg
cGFyYW1zKTsKICAgICAgICAgZGVsZXRlIFtdIHBhcmFtczsKICAgICAgICAgdGltZXJJZCA9IERP
TVRpbWVyOjppbnN0YWxsKHdvcmtlckNvbnRleHQsIGFjdGlvbiwgdGltZW91dCwgc2luZ2xlU2hv
dCk7CiAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODI4NSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA5LTExICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1Y4XSBUZWFjaCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1
dGUgYWJvdXQgaXNvbGF0ZWQgd29ybGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzcwMworCisgICAgICAgIEFkZCB0ZXN0IGNvdmVyYWdlIGZvciB0
aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBzZXRUaW1lb3V0IGFuZCBpc29sYXRlZAorICAgICAgICB3
b3JsZHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2lu
ZG93LXNldFRpbWVvdXQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL3dpbmRvdy1zZXRUaW1lb3V0LXN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1z
dHJpbmcuaHRtbDogQWRkZWQuCisKIDIwMDktMDktMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0
LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9pc29sYXRlZFdvcmxkL3dpbmRvdy1zZXRUaW1lb3V0LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitBTEVSVDogUEFTUworCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQt
ZnVuY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtZnVuY3Rpb24uaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93
aW5kb3ctc2V0VGltZW91dC1mdW5jdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkb25lKCkgeworICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30K
K3dpbmRvdy5mdW5jID0gZnVuY3Rpb24gKCkgeworICBhbGVydCgiRkFJTDogV3JvbmcgZnVuY3Rp
b24uIik7CisgIGRvbmUoKTsKK307Citkb2N1bWVudC5mb28gPSAiRkFJTDogV3Jvbmcgd3JhcHBl
cnMuIjsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdv
cmxkKAorICAgICJkb2N1bWVudC5mb28gPSAnUEFTUyc7XG4iICsKKyAgICAid2luZG93LmZ1bmMg
PSBmdW5jdGlvbiAoKSB7XG4iICsKKyAgICAiICBhbGVydChkb2N1bWVudC5mb28pO1xuIiArCisg
ICAgIiAgd2luZG93LmxvY2F0aW9uID0gJ2phdmFzY3JpcHQ6ZG9uZSgpJztcbiIgKworICAgICJ9
O1xuIiArCisgICAgIndpbmRvdy5zZXRUaW1lb3V0KGZ1bmMsIDApOyIpOworfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3RyaW5nLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQv
d2luZG93LXNldFRpbWVvdXQtc3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3ctc2V0VGlt
ZW91dC1zdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0FM
RVJUOiBQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC93aW5kb3ctc2V0VGltZW91dC1zdHJpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVv
dXQtc3RyaW5nLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXNldFRpbWVvdXQtc3RyaW5nLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRvbmUoKSB7Cisg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworfQord2luZG93LmZ1bmMgPSBmdW5jdGlvbiAoKSB7CisgIGFsZXJ0
KCJGQUlMOiBXcm9uZyBmdW5jdGlvbi4iKTsKKyAgZG9uZSgpOworfTsKK2RvY3VtZW50LmZvbyA9
ICJGQUlMOiBXcm9uZyB3cmFwcGVycy4iOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVh
dGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCisgICAgImRvY3VtZW50LmZvbyA9ICdQQVNTJztcbiIg
KworICAgICJ3aW5kb3cuZnVuYyA9IGZ1bmN0aW9uICgpIHtcbiIgKworICAgICIgIGFsZXJ0KGRv
Y3VtZW50LmZvbyk7XG4iICsKKyAgICAiICB3aW5kb3cubG9jYXRpb24gPSAnamF2YXNjcmlwdDpk
b25lKCknO1xuIiArCisgICAgIn07XG4iICsKKyAgICAid2luZG93LnNldFRpbWVvdXQoJ2Z1bmMo
KScsIDApOyIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40101</attachid>
            <date>2009-09-25 00:59:43 -0700</date>
            <delta_ts>2010-01-13 00:29:33 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27703-20090925005942.patch</filename>
            <type>text/plain</type>
            <size>4539</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMTM4Y2E3Li44YTI2MDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDkt
MjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhdIFRlYWNoIFNjaGVkdWxlZEFjdGlvbjo6
ZXhlY3V0ZSBhYm91dCBpc29sYXRlZCB3b3JsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAzCisKKyAgICAgICAgVGVzdCBhIHN0cmFuZ2UgZXJy
b3IgY29uZGl0aW9uIGFmdGVyIGNsZWFyaW5nIGEgc2V0SW50ZXJ2YWwKKyAgICAgICAgdGltZXIu
ICBUaGUga2V5IHBvaW50IGlzIG5vdCB0byBjcmFzaCBvbiB0aGlzIHRlc3QuCisKKyAgICAgICAg
KiBmYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1l
cnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWNsZWFy
LWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLmh0bWw6IEFkZGVkLgorCiAy
MDA5LTA5LTIzICBLYXJlbiBHcsO8bmJlcmcgIDxrYXJlbit3ZWJraXRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUt
ZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50
ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzODA5MTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1n
ZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA6IEVycm9yOiBOT1RfRk9VTkRfRVJSOiBET00gRXhjZXB0aW9uIDgKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFu
ZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVy
LWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJlNjY5YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5k
LWdlbmVyYXRlLWVycm9yLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPHNjcmlwdD4NCitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQorICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCkNCisgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCit9DQor
DQorZnVuY3Rpb24gbG9nKG1zZykgew0KKyAgdmFyIGVsbXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsNCisgIGVsbXQudGV4dENvbnRlbnQgPSBtc2c7DQorICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKG1zZyk7DQorfQ0KKw0KK3ZhciB0aW1lciA9IHNldEludGVydmFsKGZ1bmN0
aW9uKCkgew0KKyAgY2xlYXJJbnRlcnZhbCh0aW1lcik7DQorICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgew0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgIH0sIDEwKTsNCisNCisgIC8vIFRoaXMg
ZnVuY3Rpb24gdHJpZXMgdG8gYXBwZW5kQ2hpbGQgdG8gYm9keSwgYnV0IGJvZHkgZG9lc24ndCBl
eGlzdA0KKyAgLy8geWV0LCBnZW5lcmF0aW5nIGFuIGVycm9yLiAgVGhpcyB0ZXN0IHBhc3NlcyBp
ZiB3ZSBkb24ndCBjcmFzaCB3aGVuDQorICAvLyB0cnlpbmcgdG8gYWRkIHRoZSBlcnJvciBtZXNz
YWdlIHRvIHRoZSBjb25zb2xlLg0KKyAgbG9nKCJQQVNTIik7DQorfSwgMTApOw0KKzwvc2NyaXB0
Pg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMjhiM2Q0Yy4uMWQzYTc0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0wOS0yNSAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtWOF0gVGVhY2ggU2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlIGFib3V0
IGlzb2xhdGVkIHdvcmxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mjc3MDMKKworICAgICAgICBXaGVuIHNldFRpbWVvdXQgaXMgY2FsbGVkIHdpdGgg
YSBzdHJpbmcgYXJndW1lbnQgaW4gYW4gaXNvbGF0ZWQKKyAgICAgICAgd29ybGQsIHdlIG5vdyBj
b21waWxlIHRoZSBzdHJpbmcgaW4gdGhlIGlzb2xhdGVkIHdvcmxkLgorCisgICAgICAgIExhc3Qg
dGltZSB3ZSB0cmllZCB0aGlzIGNoYW5nZSwgd2UgZ290IGEgbG90IG9mIGNyYXNoZXMuICBUaGlz
CisgICAgICAgIHRpbWUgd2UncmUgdXNpbmcgYSBmcmVzaCBsb2NhbCBoYW5kbGUgYXMgb3VyIGNv
bnRleHQgdG8gYXZvaWQKKyAgICAgICAgdHJvdWJsZSBpZiB0aGUgcGVyaXN0ZW50IGhhbmRsZSBn
ZXRzIGRpc3Bvc2VkIGJlZm9yZSB3ZSBsZWF2ZQorICAgICAgICB0aGUgY29udGV4dC4KKworICAg
ICAgICBUZXN0OiBmYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1n
ZW5lcmF0ZS1lcnJvci5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKwog
MjAwOS0wOS0yMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjaGVkdWxlZEFjdGlvbi5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlv
bi5jcHAKaW5kZXggMzE4OGViNi4uNGYzMjFjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1
bGVkQWN0aW9uLmNwcApAQCAtMTA3LDggKzEwNyw3IEBAIHZvaWQgU2NoZWR1bGVkQWN0aW9uOjpl
eGVjdXRlKFY4UHJveHkqIHByb3h5KQogICAgIEFTU0VSVChwcm94eSk7CiAKICAgICB2ODo6SGFu
ZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2h5IHVzaW5n
IG1fY29udGV4dCBpbnN0ZWFkIG9mIHByb3h5LT5jb250ZXh0KCkgaGVyZSBjYXVzZXMgY3Jhc2hl
cyBpbiBWOFByb3h5OjpnZXRFbnRlcmVkQ29udGV4dCgpOwotICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IHY4Q29udGV4dCA9IHByb3h5LT5jb250ZXh0KCk7CisgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gdjhDb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KG1fY29udGV4
dC5nZXQoKSk7CiAgICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsg
Ly8gSlMgbWF5IG5vdCBiZSBlbmFibGVkLgogCkBAIC0xMzYsOCArMTM1LDcgQEAgdm9pZCBTY2hl
ZHVsZWRBY3Rpb246OmV4ZWN1dGUoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCkKIAogICAg
IGlmICghbV9mdW5jdGlvbi5Jc0VtcHR5KCkgJiYgbV9mdW5jdGlvbi0+SXNGdW5jdGlvbigpKSB7
CiAgICAgICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICAgICAgLy8gRklYTUU6
IEZpZ3VyZSBvdXQgd2h5IHVzaW5nIG1fY29udGV4dCBpbnN0ZWFkIG9mIHByb3h5LT5jb250ZXh0
KCkgaGVyZSBjYXVzZXMgY3Jhc2hlcyBpbiBWOFByb3h5OjpnZXRFbnRlcmVkQ29udGV4dCgpOwot
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBzY3JpcHRDb250cm9s
bGVyLT5wcm94eSgpLT5jb250ZXh0KCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+
IHY4Q29udGV4dCA9IHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhtX2NvbnRleHQuZ2V0KCkp
OwogICAgICAgICBBU1NFUlQoIXY4Q29udGV4dC5Jc0VtcHR5KCkpOwogICAgICAgICB2ODo6Q29u
dGV4dDo6U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKICAgICAgICAgbV9mdW5jdGlvbi0+Q2FsbCh2
OENvbnRleHQtPkdsb2JhbCgpLCBtX2FyZ2MsIG1fYXJndik7
</data>

          </attachment>
      

    </bug>

</bugzilla>