<?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>58610</bug_id>
          
          <creation_ts>2011-04-14 17:27:55 -0700</creation_ts>
          <short_desc>CSP should block string arguments to setTimeout and setInterval unless options eval-script</short_desc>
          <delta_ts>2011-04-15 19:33:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53572</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>386216</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-14 17:27:55 -0700</bug_when>
    <thetext>CSP should block string arguments to setTimeout and setInterval unless options eval-script</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386217</commentid>
    <comment_count>1</comment_count>
      <attachid>89697</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-14 17:29:59 -0700</bug_when>
    <thetext>Created attachment 89697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386331</commentid>
    <comment_count>2</comment_count>
      <attachid>89697</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-14 20:33:47 -0700</bug_when>
    <thetext>Comment on attachment 89697
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386452</commentid>
    <comment_count>3</comment_count>
      <attachid>89697</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-15 00:39:44 -0700</bug_when>
    <thetext>Comment on attachment 89697
Patch

Clearing flags on attachment: 89697

Committed r83954: &lt;http://trac.webkit.org/changeset/83954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386453</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-15 00:39:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386482</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-15 02:07:49 -0700</bug_when>
    <thetext>I think this patch broke fast/dom/Window/timer-null-script-execution-context.html		
 on GTK:

http://webkit-bots.igalia.com/amd64/svn_83958.core-when_1302857706-_-who_DumpRenderTree-_-why_11.trace.html

Thread 1 (Thread 5107):
#0  0x00002b40f4742876 in WTF::RefPtr&lt;WebCore::ContentSecurityPolicy&gt;::get (this=0x13d8) at ../../Source/JavaScriptCore/wtf/RefPtr.h:60
#1  0x00002b40f4742146 in WebCore::Document::contentSecurityPolicy (this=0x0) at ../../Source/WebCore/dom/Document.h:1106
#2  0x00002b40f4741479 in WebCore::JSDOMWindow::setTimeout (this=0x2b41488259d0, exec=0x2b4148012130) at ../../Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:735
#3  0x00002b40f5224e70 in WebCore::jsDOMWindowPrototypeFunctionSetTimeout (exec=0x2b4148012130) at DerivedSources/WebCore/JSDOMWindow.cpp:9692
#4  0x00002b40f54f2975 in JSC::Interpreter::executeCall (this=0x15a0db0, callFrame=0x2b41480120b0, function=0x2b414bd3b210, callType=JSC::CallTypeHost, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:872
#5  0x00002b40f557f77c in JSC::call (exec=0x2b41480120b0, functionObject=..., callType=JSC::CallTypeHost, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/runtime/CallData.cpp:38
#6  0x00002b40f55908b5 in JSC::functionProtoFuncCall (exec=0x2b41480120b0) at ../../Source/JavaScriptCore/runtime/FunctionPrototype.cpp:146
#7  0x00002b41080001e8 in ?? ()
#8  0x00007ffff87ea2b0 in ?? ()
#9  0x00002b410805b52e in ?? ()
#10 0x00007ffff87ea240 in ?? ()
#11 0x00002b414bd3b210 in ?? ()
#12 0x0000000004167800 in ?? ()
#13 0x00002b4100000001 in ?? ()
#14 0x00002b414882f3a0 in ?? ()
#15 0x00007ffff87ea260 in ?? ()
#16 0x00007ffff87ea270 in ?? ()
#17 0x00002b40f45fa03d in JSC::JSValue::decode (ptr=0x2b40f94f4170) at ../../Source/JavaScriptCore/runtime/JSValueInlineMethods.h:369
#18 0x00002b40f54f5779 in JSC::JITCode::execute (this=0x2b414bcdcb68, registerFile=0x15a0dc8, callFrame=0x2b4148012038, globalData=0xfc6050) at ../../Source/JavaScriptCore/jit/JITCode.h:77
#19 0x00002b40f54f2723 in JSC::Interpreter::executeCall (this=0x15a0db0, callFrame=0x2b4148826bd8, function=0x2b414bcfb710, callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:844
#20 0x00002b40f557f77c in JSC::call (exec=0x2b4148826bd8, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/runtime/CallData.cpp:38
#21 0x00002b40f471fc6b in WebCore::JSMainThreadExecState::call (exec=0x2b4148826bd8, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/WebCore/bindings/js/JSMainThreadExecState.h:48
#22 0x00002b40f4784b46 in WebCore::ScheduledAction::executeFunctionInContext (this=0x43c7f90, globalObject=0x2b4148826b50, thisValue=..., context=0x4130500) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:109
#23 0x00002b40f4784d3b in WebCore::ScheduledAction::execute (this=0x43c7f90, document=0x4130320) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:131
#24 0x00002b40f4784902 in WebCore::ScheduledAction::execute (this=0x43c7f90, context=0x4130500) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:79
#25 0x00002b40f4cd62fd in WebCore::DOMTimer::fired (this=0x43c7fd0) at ../../Source/WebCore/page/DOMTimer.cpp:148
#26 0x00002b40f4e06160 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0xfcdbb0) at ../../Source/WebCore/platform/ThreadTimers.cpp:112
#27 0x00002b40f4e06097 in WebCore::ThreadTimers::sharedTimerFired () at ../../Source/WebCore/platform/ThreadTimers.cpp:90
#28 0x00002b40f45b485a in WebCore::timeout_cb () at ../../Source/WebCore/platform/gtk/SharedTimerGtk.cpp:49
#29 0x00002b40f9253dbb in g_timeout_dispatch (source=0x41d8650, callback=0x2b4148012130, user_data=0x2b4148012130) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3877
#30 0x00002b40f9253362 in g_main_dispatch (context=0xffff000000000002) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:2440
#31 g_main_context_dispatch (context=0xffff000000000002) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3013
#32 0x00002b40f9257a28 in g_main_context_iterate (context=0xf27a30, block=&lt;value optimized out&gt;, dispatch=&lt;value optimized out&gt;, self=&lt;value optimized out&gt;) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3091
#33 0x00002b40f9257f35 in g_main_loop_run (loop=0x4121c90) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3299
#34 0x00002b40f71c6657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#35 0x0000000000421360 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:702
#36 0x00000000004209fd in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:494
#37 0x0000000000422cbf in main (argc=2, argv=0x7ffff87eb438) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1179</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386485</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-15 02:08:30 -0700</bug_when>
    <thetext>Forgot a bit:

Program terminated with signal 11, Segmentation fault.
#0  0x00002b40f4742876 in WTF::RefPtr&lt;WebCore::ContentSecurityPolicy&gt;::get (this=0x13d8) at ../../Source/JavaScriptCore/wtf/RefPtr.h:60
60	        T* get() const { return m_ptr; }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386524</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-15 05:03:54 -0700</bug_when>
    <thetext>Windows, too: http://build.webkit.org/results/Windows%20XP%20Debug%20%28Tests%29/r83954%20(27657)/fast/dom/Window/timer-null-script-execution-context-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386540</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-15 06:14:02 -0700</bug_when>
    <thetext>I rolled this out in r83963 to stop the crashing on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386754</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-15 11:02:02 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I rolled this out in r83963 to stop the crashing on the bots.

Thanks!  Sorry I went to sleep.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386890</commentid>
    <comment_count>10</comment_count>
      <attachid>89847</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-15 13:51:31 -0700</bug_when>
    <thetext>Created attachment 89847
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387167</commentid>
    <comment_count>11</comment_count>
      <attachid>89847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-15 19:33:31 -0700</bug_when>
    <thetext>Comment on attachment 89847
Patch for landing

Clearing flags on attachment: 89847

Committed r84073: &lt;http://trac.webkit.org/changeset/84073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387168</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-15 19:33:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89697</attachid>
            <date>2011-04-14 17:29:59 -0700</date>
            <delta_ts>2011-04-15 13:51:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58610-20110414172958.patch</filename>
            <type>text/plain</type>
            <size>17058</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM5MDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZjM2MDNiOGM3YWRmNDM5Y2M4M2Ex
OTJkYzNmNTY0NTc5YzVmZWMxLi4yZTU4MDdiZWY5NmE4MWU2NWFjOGQ3YWZkNzEzYjgxOTg0YWU0
ZTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0yLDYgKzIsMjQgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KIAorICAgICAgICBDU1Agc2hvdWxkIGJsb2NrIHN0cmluZyBhcmd1bWVudHMgdG8g
c2V0VGltZW91dCBhbmQgc2V0SW50ZXJ2YWwgdW5sZXNzIG9wdGlvbnMgZXZhbC1zY3JpcHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjEwCisKKyAg
ICAgICAgSGVyZWluIGxpZXMgYSBmb3VyLXdheSB0ZXN0aW5nIG1hdHJpeC4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1z
ZXRJbnRlcnZhbC1hbGxvd2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVy
dmFsLWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9l
dmFsLXNjcmlwdHMtc2V0VGltZW91dC1hbGxvd2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3Jp
cHRzLXNldFRpbWVvdXQtYWxsb3dlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1i
bG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldFRpbWVvdXQtYmxvY2tlZC5o
dG1sOiBBZGRlZC4KKworMjAxMS0wNC0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBDU1AncyAnc2VsZicgc291cmNlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODYwNAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0
SW50ZXJ2YWwtYWxsb3dlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYWxs
b3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIyYjM0NWQzOGYxYmIxOTM1ZDc2MWU0YTlk
NjRkZjFkNDBhMjgyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZhbC1h
bGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0FMRVJUOiBQQVNTIDEgb2YgMgor
QUxFUlQ6IFBBU1MgMiBvZiAyCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFs
LWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZhbC1hbGxvd2VkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWZmMTc1OGIzNTIyMjA2YjI2ZTI5OTZmZmE4N2E2NTVhMjc4NDEzMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZhbC1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0i
WC1XZWJLaXQtQ1NQIiBjb250ZW50PSJzY3JpcHQtc3JjICdub25lJzsgb3B0aW9ucyBkaXNhYmxl
LXhzcy1wcm90ZWN0aW9uIGV2YWwtc2NyaXB0Ij4KKzwvaGVhZD4KKzxwcmU+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9CisKK3ZhciBpZF9zdHJpbmcgPSBzZXRJbnRlcnZhbCgiY2xlYXJJbnRlcnZhbChpZF9z
dHJpbmcpOyBhbGVydCgnUEFTUyAxIG9mIDInKSIsIDApOworaWYgKGlkX3N0cmluZyA9PSAwKQor
ICAgIGRvY3VtZW50LndyaXRlKCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIHN0cmluZyAoc2hvdWxk
IG5vdCBiZSAwKTogJyArIGlkX3N0cmluZyk7CisKK3ZhciBpZF9mdW5jdGlvbiA9IHNldEludGVy
dmFsKGZ1bmN0aW9uKCkgeworICBjbGVhckludGVydmFsKGlkX2Z1bmN0aW9uKTsKKyAgYWxlcnQo
J1BBU1MgMiBvZiAyJyk7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAwKTsKK2lmIChpZF9mdW5j
dGlvbiA9PSAwKQorICAgIGRvY3VtZW50LndyaXRlKCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIGZ1
bmN0aW9uIChzaG91bGQgbm90IGJlIDApOiAnICsgaWRfZnVuY3Rpb24pOworPC9zY3JpcHQ+Cis8
L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZh
bC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZhbC1ibG9ja2VkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzdkMTE1ZTBkMTE1MTNmOGFlMzY0Y2RmYzcxY2UyOTIz
NzQ2YzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorQUxFUlQ6IFBBU1MKKworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9l
dmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVy
dmFsLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDE1NjZlNWQwZTUzYjA3Nzg5MDQ2ZTQ1YzVh
NGY3N2IzYzg5ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJs
b2NrZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMg
J25vbmUnOyBvcHRpb25zIGRpc2FibGUteHNzLXByb3RlY3Rpb24iPgorPC9oZWFkPgorPHByZT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKK30KKwordmFyIGlkID0gc2V0SW50ZXJ2YWwoImFsZXJ0KCdGQUlMJyki
LCAwKTsKK2lmIChpZCAhPSAwKQorICAgIGRvY3VtZW50LndyaXRlKCdGQUlMOiBSZXR1cm4gdmFs
dWUgZm9yIHN0cmluZyAoc2hvdWxkIGJlIDApOiAnICsgaWQpOworCit2YXIgaWQgPSBzZXRJbnRl
cnZhbChmdW5jdGlvbigpIHsKKyAgY2xlYXJJbnRlcnZhbChpZCk7CisgIGFsZXJ0KCdQQVNTJyk7
CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAwKTsKK2lmIChpZCA9PSAwKQorICAgIGRvY3VtZW50
LndyaXRlKCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIGZ1bmN0aW9uIChzaG91bGQgbm90IGJlIDAp
OiAnICsgaWQpOworPC9zY3JpcHQ+Cis8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0LWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRz
LXNldFRpbWVvdXQtYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIyYjM0NWQzOGYx
YmIxOTM1ZDc2MWU0YTlkNjRkZjFkNDBhMjgyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0
cy1zZXRUaW1lb3V0LWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQUxFUlQ6
IFBBU1MgMSBvZiAyCitBTEVSVDogUEFTUyAyIG9mIDIKKworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlw
dHMtc2V0VGltZW91dC1hbGxvd2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1hbGxvd2Vk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGY3NGUxYjA2ZmFhZGNiYzU4NjE1MzY4OTZkOTljYTE3OTg4NTFi
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0LWFsbG93ZWQuaHRtbApA
QCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBo
dHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ25vbmUnOyBvcHRp
b25zIGRpc2FibGUteHNzLXByb3RlY3Rpb24gZXZhbC1zY3JpcHQiPgorPC9oZWFkPgorPHByZT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKK30KKwordmFyIGlkID0gc2V0VGltZW91dCgiYWxlcnQoJ1BBU1MgMSBv
ZiAyJykiLCAwKTsKK2lmIChpZCA9PSAwKQorICAgIGRvY3VtZW50LndyaXRlKCdGQUlMOiBSZXR1
cm4gdmFsdWUgZm9yIHN0cmluZyAoc2hvdWxkIG5vdCBiZSAwKTogJyArIGlkKTsKKwordmFyIGlk
ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgYWxlcnQoJ1BBU1MgMiBvZiAyJyk7CisgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9LCAwKTsKK2lmIChpZCA9PSAwKQorICAgIGRvY3VtZW50LndyaXRl
KCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIGZ1bmN0aW9uIChzaG91bGQgbm90IGJlIDApOiAnICsg
aWQpOworPC9zY3JpcHQ+Cis8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwt
c2NyaXB0cy1zZXRUaW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldFRp
bWVvdXQtYmxvY2tlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM3ZDExNWUwZDExNTEzZjhh
ZTM2NGNkZmM3MWNlMjkyMzc0NmM5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRU
aW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorQUxFUlQ6IFBBU1MK
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1ibG9ja2VkLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNj
cmlwdHMtc2V0VGltZW91dC1ibG9ja2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEyYTdlYjcwYWRkZmYx
NjI2YTA0ZjE4OGE1NjU4MTUyZGI0ZTUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1z
ZXRUaW1lb3V0LWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9
InNjcmlwdC1zcmMgJ25vbmUnOyBvcHRpb25zIGRpc2FibGUteHNzLXByb3RlY3Rpb24iPgorPC9o
ZWFkPgorPHByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGlkID0gc2V0VGltZW91dCgiYWxl
cnQoJ0ZBSUwnKSIsIDApOworaWYgKGlkICE9IDApCisgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUw6
IFJldHVybiB2YWx1ZSBmb3Igc3RyaW5nIChzaG91bGQgYmUgMCk6ICcgKyBpZCk7CisKK3ZhciBp
ZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgIGFsZXJ0KCdQQVNTJyk7CisgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7Cit9LCAwKTsKK2lmIChpZCA9PSAwKQorICAgIGRvY3VtZW50LndyaXRlKCdGQUlM
OiBSZXR1cm4gdmFsdWUgZm9yIGZ1bmN0aW9uIChzaG91bGQgbm90IGJlIDApOiAnICsgaWQpOwor
PC9zY3JpcHQ+Cis8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4Mjc4MjVm
NjRjMTdmNjMxZjFkMmJiZmI5ZjM3MDAwNTRhNzRlNmRhLi5kNTYzM2QxZWI3ODBlOGRjZjk2YjE0
OGY1OGI2ODU2MGI4NWRlZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzcgQEAKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBDU1Agc2hvdWxkIGJsb2Nr
IHN0cmluZyBhcmd1bWVudHMgdG8gc2V0VGltZW91dCBhbmQgc2V0SW50ZXJ2YWwgdW5sZXNzIG9w
dGlvbnMgZXZhbC1zY3JpcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU4NjEwCisKKyAgICAgICAgSXQncyBzb21ld2hhdCBzYWRuZXNzIHRoYXQgdGhl
IEpTQyBhbmQgVjggY29kZSBmb3Igc2V0VGltZW91dCBhbmQKKyAgICAgICAgc2V0SW50ZXJ2YWwg
YXJlIHNvIGRpZmZlcmVudC4gIEkgc3RydWdnbGVkIGZvciBhIHdoaWxlIHdpdGggaG93IHRvCisg
ICAgICAgIGhhbmRsZSB0aGUgd29ya2VyIGNhc2UsIGJ1dCBJIGRlY2lkZWQgdG8gcHVudCBvbiBp
dCBmb3Igbm93LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYWxsb3dlZC5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFs
LXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91
dC1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0LWJsb2NrZWQuaHRtbAorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OnNldFRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OnNldEludGVydmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJDb250ZXh0OjpzZXRUaW1l
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV29ya2VyQ29udGV4dDo6c2V0SW50ZXJ2YWwpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2No
ZWR1bGVkQWN0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd1NldFRpbWVvdXRJbXBsKToKKyAg
ICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93RXZhbCk6CisgICAgICAgICogcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaDoKKworMjAxMS0wNC0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBDU1AncyAnc2VsZicgc291cmNlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODYwNAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggMDNmOWQ2ODhkODE4
NmE4MWY3NjA4OTNmMGQ4OTY0OTgzZWIwMjA0My4uZTdmNzkwM2QyZWRjOGZjNzQ1NTliZDUzMjkx
YjA3NmRkYTZiMzYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcApAQCAtNzMyLDkgKzczMiwxMyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93
Ojpwb3N0TWVzc2FnZShFeGVjU3RhdGUqIGV4ZWMpCiAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnNl
dFRpbWVvdXQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+
IGFjdGlvbiA9IFNjaGVkdWxlZEFjdGlvbjo6Y3JlYXRlKGV4ZWMsIGN1cnJlbnRXb3JsZChleGVj
KSk7CisgICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gU2NoZWR1bGVkQWN0aW9u
OjpjcmVhdGUoZXhlYywgY3VycmVudFdvcmxkKGV4ZWMpLCBpbXBsKCktPmRvY3VtZW50KCktPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgaWYgKCFhY3Rpb24pCisgICAgICAg
IHJldHVybiBqc051bWJlcigwKTsKKwogICAgIGludCBkZWxheSA9IGV4ZWMtPmFyZ3VtZW50KDEp
LnRvSW50MzIoZXhlYyk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTc0NiwxMSAr
NzUwLDE0IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OnNldFRpbWVvdXQoRXhlY1N0YXRlKiBleGVj
KQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpzZXRJbnRlcnZhbChFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gU2NoZWR1bGVkQWN0aW9uOjpj
cmVhdGUoZXhlYywgY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICBPd25QdHI8U2NoZWR1bGVkQWN0
aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBjdXJyZW50V29ybGQo
ZXhlYyksIGltcGwoKS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAgICAgaW50IGRlbGF5ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKIAorICAg
IGlmICghYWN0aW9uKQorICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7CisKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBpbnQgcmVzdWx0ID0gaW1wbCgpLT5zZXRJbnRlcnZhbChhY3Rp
b24ucmVsZWFzZSgpLCBkZWxheSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcAppbmRleCA4YzFjYWVmNWJhYzZmNzcxOTUzNTQxYTIwZjlhNDE5NjAyYmIzOTFhLi4x
MTAzZDBiOTY5M2I3MmYzYzkyM2UyOWE1OTA4MjA4ZGYwZjIxZmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTEy
Miw3ICsxMjIsOCBAQCBKU1ZhbHVlIEpTV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhFeGVj
U3RhdGUqIGV4ZWMpCiAKIEpTVmFsdWUgSlNXb3JrZXJDb250ZXh0OjpzZXRUaW1lb3V0KEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hl
ZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBjdXJyZW50V29ybGQoZXhlYykpOworICAgIC8vIEZJ
WE1FOiBTaG91bGQgd2UgZW5mb3JjZSBhIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IG9uIHdvcmtl
cnM/CisgICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gU2NoZWR1bGVkQWN0aW9u
OjpjcmVhdGUoZXhlYywgY3VycmVudFdvcmxkKGV4ZWMpLCAwKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGludCBkZWxh
eSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CkBAIC0xMzEsNyArMTMyLDggQEAg
SlNWYWx1ZSBKU1dvcmtlckNvbnRleHQ6OnNldFRpbWVvdXQoRXhlY1N0YXRlKiBleGVjKQogCiBK
U1ZhbHVlIEpTV29ya2VyQ29udGV4dDo6c2V0SW50ZXJ2YWwoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiA9IFNjaGVkdWxlZEFjdGlvbjo6Y3Jl
YXRlKGV4ZWMsIGN1cnJlbnRXb3JsZChleGVjKSk7CisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBl
bmZvcmNlIGEgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgb24gd29ya2Vycz8KKyAgICBPd25QdHI8
U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBj
dXJyZW50V29ybGQoZXhlYyksIDApOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgaW50IGRlbGF5ID0gZXhlYy0+YXJndW1l
bnQoMSkudG9JbnQzMihleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hl
ZHVsZWRBY3Rpb24uY3BwCmluZGV4IGM4ZTQzNmZlZTdhYTY2ZTExOTJmMWUyZTA4N2YzOTExZmNm
MzA0YjIuLmI4YTYyM2JjMzczMzkxN2ZiOTE5N2MxYzg5M2IyNmQwZjAyYjdhNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcApAQCAtMjQsNiAr
MjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5o
IgogCisjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDYs
MTEgKzQ3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFzc093blB0cjxTY2hlZHVsZWRBY3Rpb24+IFNjaGVkdWxlZEFjdGlvbjo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQorUGFzc093blB0
cjxTY2hlZHVsZWRBY3Rpb24+IFNjaGVkdWxlZEFjdGlvbjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkLCBDb250ZW50U2VjdXJpdHlQb2xpY3kq
IHBvbGljeSkKIHsKICAgICBKU1ZhbHVlIHYgPSBleGVjLT5hcmd1bWVudCgwKTsKICAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKICAgICBpZiAoZ2V0Q2FsbERhdGEodiwgY2FsbERhdGEpID09IENhbGxU
eXBlTm9uZSkgeworICAgICAgICBpZiAocG9saWN5ICYmICFwb2xpY3ktPmFsbG93RXZhbCgpKQor
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIFVTdHJpbmcgc3RyaW5nID0gdi50b1N0cmlu
ZyhleGVjKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVs
ZWRBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5o
CmluZGV4IDFjODQ1ZGQ1YmMwNDBlYTFhMDgzNTBhZjk5Y2IzM2E1MWNmODU4OWIuLjE1OTU3NTg2
MWQ4NGY1YzhiMjMwZjE1NjI1MjkwZTg5ZTBiYjM1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xh
c3MgQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiAgICAgY2xhc3MgV29ya2VyQ29udGV4dDsKIApAQCAtNDQsNyArNDUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uIHsKICAgICAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoU2NoZWR1bGVkQWN0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxTY2hlZHVsZWRBY3Rpb24+
IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7
CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gY3JlYXRlKEpTQzo6
RXhlY1N0YXRlKiwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkLCBDb250ZW50U2VjdXJp
dHlQb2xpY3kqKTsKIAogICAgICAgICB2b2lkIGV4ZWN1dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
T01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA4NWFlMzIyNTZmZDM3Njc0YTMxYzc2ZGNmY2FmYzBh
MTM0MjRmZGM4Li4yNjExNmU2YTlmZTUyMjNhNWQzZDNjOGRkMWFlMGZiYjgwN2JiOWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRv
d0N1c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgog
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5Lmgi
CiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCkBAIC0xMzEsNiArMTMyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFdpbmRvd1NldFRpbWVvdXRJbXBsKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJvb2wg
c2luZ2wKIAogICAgICAgICBpZCA9IERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdENvbnRleHQsIGFj
dGlvbiwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFp
bXAtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoKSkKKyAg
ICAgICAgICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KDApOwogICAgICAgICBpZCA9IERPTVRp
bWVyOjppbnN0YWxsKHNjcmlwdENvbnRleHQsIG5ldyBTY2hlZHVsZWRBY3Rpb24oVjhQcm94eTo6
Y29udGV4dChpbXAtPmZyYW1lKCkpLCBmdW5jdGlvblN0cmluZyksIHRpbWVvdXQsIHNpbmdsZVNo
b3QpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCmluZGV4IDNhMjM4NzQ2YmY2NDUxN2IxODE4MjE5MDMzYWVjZTNhZGNlOGZlOGYuLjM4
MzM4YjIzMDNmMDcxMDI5M2UyMmNhYjVlY2RhY2U1MTdlODQyODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTQ5OCw2ICs0OTgsMTEgQEAg
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU2NyaXB0KCkgY29uc3QKICAg
ICByZXR1cm4gIXByb3RlY3RBZ2FpbnN0WFNTKCk7CiB9CiAKK2Jvb2wgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd0V2YWwoKSBjb25zdAoreworICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwg
KG1fb3B0aW9ucyAmJiBtX29wdGlvbnMtPmV2YWxTY3JpcHQoKSk7Cit9CisKIGJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBj
b25zdAogewogICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwgbV9zY3JpcHRTcmMtPmFsbG93cyh1
cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXgg
OGEzMmQyMTdhZmJjNTg2Y2YwYThhYjliNmNlYjdiNmY3NWU3OTk2Ny4uMGExODQwNzg0ODRjMTRk
OTJlMmVjMTRhOGZhNTBmODQzMWYyOGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGFs
bG93SmF2YVNjcmlwdFVSTHMoKSBjb25zdDsKICAgICBib29sIGFsbG93SW5saW5lRXZlbnRIYW5k
bGVycygpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dJbmxpbmVTY3JpcHQoKSBjb25zdDsKKyAgICBi
b29sIGFsbG93RXZhbCgpIGNvbnN0OwogCiAgICAgYm9vbCBhbGxvd1NjcmlwdEZyb21Tb3VyY2Uo
Y29uc3QgS1VSTCYpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dPYmplY3RGcm9tU291cmNlKGNvbnN0
IEtVUkwmKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89847</attachid>
            <date>2011-04-15 13:51:31 -0700</date>
            <delta_ts>2011-04-15 19:33:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-58610-20110415135130.patch</filename>
            <type>text/plain</type>
            <size>16291</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0MDIzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDQtMTUgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICBDU1Agc2hvdWxkIGJsb2NrIHN0cmluZyBhcmd1bWVudHMgdG8gc2V0VGlt
ZW91dCBhbmQgc2V0SW50ZXJ2YWwgdW5sZXNzIG9wdGlvbnMgZXZhbC1zY3JpcHQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjEwCisKKyAgICAgICAg
SXQncyBzb21ld2hhdCBzYWRuZXNzIHRoYXQgdGhlIEpTQyBhbmQgVjggY29kZSBmb3Igc2V0VGlt
ZW91dCBhbmQKKyAgICAgICAgc2V0SW50ZXJ2YWwgYXJlIHNvIGRpZmZlcmVudC4gIEkgc3RydWdn
bGVkIGZvciBhIHdoaWxlIHdpdGggaG93IHRvCisgICAgICAgIGhhbmRsZSB0aGUgd29ya2VyIGNh
c2UsIGJ1dCBJIGRlY2lkZWQgdG8gcHVudCBvbiBpdCBmb3Igbm93LgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMt
c2V0SW50ZXJ2YWwtYWxsb3dlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tl
ZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0
cy1zZXRUaW1lb3V0LWJsb2NrZWQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnNldFRpbWVv
dXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnNldEludGVydmFsKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXb3JrZXJDb250ZXh0OjpzZXRUaW1lb3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
V29ya2VyQ29udGV4dDo6c2V0SW50ZXJ2YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjaGVk
dWxlZEFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRBY3Rpb246OmNyZWF0
ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmg6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldpbmRvd1NldFRpbWVvdXRJbXBsKToKKyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFs
bG93RXZhbCk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKwogMjAx
MS0wNC0xNSAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiA4NDAyMykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzMyLDkgKzczMiwxNCBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpwb3N0TWVz
c2FnZShFeGVjU3RhCiAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnNldFRpbWVvdXQoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiA9IFNjaGVkdWxl
ZEFjdGlvbjo6Y3JlYXRlKGV4ZWMsIGN1cnJlbnRXb3JsZChleGVjKSk7CisgICAgQ29udGVudFNl
Y3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSBpbXBsKCktPmRvY3VtZW50KCkg
PyBpbXBsKCktPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpIDogMDsKKyAgICBP
d25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShl
eGVjLCBjdXJyZW50V29ybGQoZXhlYyksIGNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKwor
ICAgIGlmICghYWN0aW9uKQorICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7CisKICAgICBpbnQg
ZGVsYXkgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogCiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CkBAIC03NDYsMTEgKzc1MSwxNSBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpz
ZXRUaW1lb3V0KEV4ZWNTdGF0CiAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnNldEludGVydmFsKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBT
Y2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBjdXJyZW50V29ybGQoZXhlYykpOworICAgIENv
bnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5ID0gaW1wbCgpLT5kb2N1
bWVudCgpID8gaW1wbCgpLT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSA6IDA7
CisgICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gU2NoZWR1bGVkQWN0aW9uOjpj
cmVhdGUoZXhlYywgY3VycmVudFdvcmxkKGV4ZWMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3kpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiAgICAgaW50IGRlbGF5ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKIAor
ICAgIGlmICghYWN0aW9uKQorICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7CisKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKICAgICBpbnQgcmVzdWx0ID0gaW1wbCgpLT5zZXRJbnRlcnZhbChh
Y3Rpb24ucmVsZWFzZSgpLCBkZWxheSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDg0MDIzKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDcgKzEyMiw4IEBAIEpTVmFsdWUgSlNXb3JrZXJDb250ZXh0OjppbXBvcnRTY3JpcHRzKEUKIAog
SlNWYWx1ZSBKU1dvcmtlckNvbnRleHQ6OnNldFRpbWVvdXQoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiA9IFNjaGVkdWxlZEFjdGlvbjo6Y3Jl
YXRlKGV4ZWMsIGN1cnJlbnRXb3JsZChleGVjKSk7CisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBl
bmZvcmNlIGEgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgb24gd29ya2Vycz8KKyAgICBPd25QdHI8
U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBj
dXJyZW50V29ybGQoZXhlYyksIDApOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgaW50IGRlbGF5ID0gZXhlYy0+YXJndW1l
bnQoMSkudG9JbnQzMihleGVjKTsKQEAgLTEzMSw3ICsxMzIsOCBAQCBKU1ZhbHVlIEpTV29ya2Vy
Q29udGV4dDo6c2V0VGltZW91dChFeGVjCiAKIEpTVmFsdWUgSlNXb3JrZXJDb250ZXh0OjpzZXRJ
bnRlcnZhbChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4g
YWN0aW9uID0gU2NoZWR1bGVkQWN0aW9uOjpjcmVhdGUoZXhlYywgY3VycmVudFdvcmxkKGV4ZWMp
KTsKKyAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGVuZm9yY2UgYSBDb250ZW50LVNlY3VyaXR5LVBv
bGljeSBvbiB3b3JrZXJzPworICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiA9IFNj
aGVkdWxlZEFjdGlvbjo6Y3JlYXRlKGV4ZWMsIGN1cnJlbnRXb3JsZChleGVjKSwgMCk7CiAgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ICAgICBpbnQgZGVsYXkgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCShyZXZp
c2lvbiA4NDAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKIAorI2luY2x1ZGUgIkNvbnRlbnRTZWN1
cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQ2LDExICs0NywxMyBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8U2NoZWR1bGVkQWN0
aW9uPiBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIERPTVdyYXBwZXJX
b3JsZCogaXNvbGF0ZWRXb3JsZCkKK1Bhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBTY2hlZHVs
ZWRBY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0
ZWRXb3JsZCwgQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kpCiB7CiAgICAgSlNWYWx1ZSB2
ID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgaWYgKGdl
dENhbGxEYXRhKHYsIGNhbGxEYXRhKSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgaWYgKHBv
bGljeSAmJiAhcG9saWN5LT5hbGxvd0V2YWwoKSkKKyAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICBVU3RyaW5nIHN0cmluZyA9IHYudG9TdHJpbmcoZXhlYyk7CiAgICAgICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmgJKHJldmlzaW9uIDg0MDIzKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xp
Y3k7CiAgICAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKICAgICBjbGFzcyBXb3JrZXJD
b250ZXh0OwogCkBAIC00NCw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBTY2hlZHVsZWRBY3Rpb24gewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVs
ZWRBY3Rpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gY3JlYXRlKEpTQzo6RXhlY1N0YXRl
KiwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKTsKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8U2NoZWR1bGVkQWN0aW9uPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBET01XcmFwcGVy
V29ybGQqIGlzb2xhdGVkV29ybGQsIENvbnRlbnRTZWN1cml0eVBvbGljeSopOwogCiAgICAgICAg
IHZvaWQgZXhlY3V0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9t
LmNwcAkocmV2aXNpb24gODQwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiVjhET01XaW5kb3cuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMTMxLDYg
KzEzMiw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBXaW5kb3dTZXRUaW1lb3V0SW0KIAogICAg
ICAgICBpZCA9IERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdENvbnRleHQsIGFjdGlvbiwgdGltZW91
dCwgc2luZ2xlU2hvdCk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGltcC0+ZG9jdW1lbnQo
KSAmJiAhaW1wLT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFs
KCkpCisgICAgICAgICAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldygwKTsKICAgICAgICAgaWQg
PSBET01UaW1lcjo6aW5zdGFsbChzY3JpcHRDb250ZXh0LCBuZXcgU2NoZWR1bGVkQWN0aW9uKFY4
UHJveHk6OmNvbnRleHQoaW1wLT5mcmFtZSgpKSwgZnVuY3Rpb25TdHJpbmcpLCB0aW1lb3V0LCBz
aW5nbGVTaG90KTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAJKHJldmlzaW9uIDg0MDIzKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTgsNiAr
NDk4LDExIEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVMKICAgICBy
ZXR1cm4gIXByb3RlY3RBZ2FpbnN0WFNTKCk7CiB9CiAKK2Jvb2wgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0V2YWwoKSBjb25zdAoreworICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwgKG1f
b3B0aW9ucyAmJiBtX29wdGlvbnMtPmV2YWxTY3JpcHQoKSk7Cit9CisKIGJvb2wgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25z
dAogewogICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwgbV9zY3JpcHRTcmMtPmFsbG93cyh1cmwp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCShy
ZXZpc2lvbiA4NDAyMykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wg
YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dJbmxpbmVFdmVudEhh
bmRsZXJzKCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd0lubGluZVNjcmlwdCgpIGNvbnN0OworICAg
IGJvb2wgYWxsb3dFdmFsKCkgY29uc3Q7CiAKICAgICBib29sIGFsbG93U2NyaXB0RnJvbVNvdXJj
ZShjb25zdCBLVVJMJikgY29uc3Q7CiAgICAgYm9vbCBhbGxvd09iamVjdEZyb21Tb3VyY2UoY29u
c3QgS1VSTCYpIGNvbnN0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODQwMjMpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wNC0xNSAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgorCisgICAgICAgIENTUCBzaG91bGQgYmxvY2sgc3RyaW5nIGFyZ3VtZW50cyB0
byBzZXRUaW1lb3V0IGFuZCBzZXRJbnRlcnZhbCB1bmxlc3Mgb3B0aW9ucyBldmFsLXNjcmlwdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg2MTAKKwor
ICAgICAgICBIZXJlaW4gbGllcyBhIGZvdXItd2F5IHRlc3RpbmcgbWF0cml4LgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRz
LXNldEludGVydmFsLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50
ZXJ2YWwtYWxsb3dlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tlZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZhbC1ibG9ja2VkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0LWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNj
cmlwdHMtc2V0VGltZW91dC1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0
LWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1ibG9ja2Vk
Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA0LTE1ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3Jp
cHRzLXNldEludGVydmFsLWFsbG93ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2Ny
aXB0cy1zZXRJbnRlcnZhbC1hbGxvd2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwt
c2NyaXB0cy1zZXRJbnRlcnZhbC1hbGxvd2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0IEBACitBTEVSVDogUEFTUyAxIG9mIDIKK0FMRVJUOiBQQVNTIDIgb2YgMgorCisK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L2V2YWwtc2NyaXB0cy1zZXRJbnRlcnZhbC1hbGxvd2VkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZh
bC1zY3JpcHRzLXNldEludGVydmFsLWFsbG93ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2Ny
aXB0cy1zZXRJbnRlcnZhbC1hbGxvd2VkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9Ilgt
V2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LXNyYyAnbm9uZSc7IG9wdGlvbnMgZGlzYWJsZS14
c3MtcHJvdGVjdGlvbiBldmFsLXNjcmlwdCI+Cis8L2hlYWQ+Cis8cHJlPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworfQorCit2YXIgaWRfc3RyaW5nID0gc2V0SW50ZXJ2YWwoImNsZWFySW50ZXJ2YWwoaWRfc3Ry
aW5nKTsgYWxlcnQoJ1BBU1MgMSBvZiAyJykiLCAwKTsKK2lmIChpZF9zdHJpbmcgPT0gMCkKKyAg
ICBkb2N1bWVudC53cml0ZSgnRkFJTDogUmV0dXJuIHZhbHVlIGZvciBzdHJpbmcgKHNob3VsZCBu
b3QgYmUgMCk6ICcgKyBpZF9zdHJpbmcpOworCit2YXIgaWRfZnVuY3Rpb24gPSBzZXRJbnRlcnZh
bChmdW5jdGlvbigpIHsKKyAgY2xlYXJJbnRlcnZhbChpZF9mdW5jdGlvbik7CisgIGFsZXJ0KCdQ
QVNTIDIgb2YgMicpOworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CitpZiAoaWRfZnVuY3Rp
b24gPT0gMCkKKyAgICBkb2N1bWVudC53cml0ZSgnRkFJTDogUmV0dXJuIHZhbHVlIGZvciBmdW5j
dGlvbiAoc2hvdWxkIG5vdCBiZSAwKTogJyArIGlkX2Z1bmN0aW9uKTsKKzwvc2NyaXB0PgorPC9w
cmU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tl
ZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJsb2Nr
ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJs
b2NrZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK0FMRVJUOiBQ
QVNTCisKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJsb2NrZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9ldmFsLXNjcmlwdHMtc2V0SW50ZXJ2YWwtYmxvY2tlZC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
ZXZhbC1zY3JpcHRzLXNldEludGVydmFsLWJsb2NrZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1l
cXVpdj0iWC1XZWJLaXQtQ1NQIiBjb250ZW50PSJzY3JpcHQtc3JjICdub25lJzsgb3B0aW9ucyBk
aXNhYmxlLXhzcy1wcm90ZWN0aW9uIj4KKzwvaGVhZD4KKzxwcmU+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
CisKK3ZhciBpZCA9IHNldEludGVydmFsKCJhbGVydCgnRkFJTCcpIiwgMCk7CitpZiAoaWQgIT0g
MCkKKyAgICBkb2N1bWVudC53cml0ZSgnRkFJTDogUmV0dXJuIHZhbHVlIGZvciBzdHJpbmcgKHNo
b3VsZCBiZSAwKTogJyArIGlkKTsKKwordmFyIGlkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7
CisgIGNsZWFySW50ZXJ2YWwoaWQpOworICBhbGVydCgnUEFTUycpOworICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworfSwgMCk7CitpZiAoaWQgPT0gMCkKKyAgICBkb2N1bWVudC53cml0ZSgnRkFJTDogUmV0
dXJuIHZhbHVlIGZvciBmdW5jdGlvbiAoc2hvdWxkIG5vdCBiZSAwKTogJyArIGlkKTsKKzwvc2Ny
aXB0PgorPC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91
dC1hbGxvd2VkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91
dC1hbGxvd2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1l
b3V0LWFsbG93ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK0FM
RVJUOiBQQVNTIDEgb2YgMgorQUxFUlQ6IFBBU1MgMiBvZiAyCisKKwpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1zY3JpcHRz
LXNldFRpbWVvdXQtYWxsb3dlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1l
b3V0LWFsbG93ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0LWFs
bG93ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQIiBjb250ZW50
PSJzY3JpcHQtc3JjICdub25lJzsgb3B0aW9ucyBkaXNhYmxlLXhzcy1wcm90ZWN0aW9uIGV2YWwt
c2NyaXB0Ij4KKzwvaGVhZD4KKzxwcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBpZCA9IHNl
dFRpbWVvdXQoImFsZXJ0KCdQQVNTIDEgb2YgMicpIiwgMCk7CitpZiAoaWQgPT0gMCkKKyAgICBk
b2N1bWVudC53cml0ZSgnRkFJTDogUmV0dXJuIHZhbHVlIGZvciBzdHJpbmcgKHNob3VsZCBub3Qg
YmUgMCk6ICcgKyBpZCk7CisKK3ZhciBpZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgIGFs
ZXJ0KCdQQVNTIDIgb2YgMicpOworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CitpZiAoaWQg
PT0gMCkKKyAgICBkb2N1bWVudC53cml0ZSgnRkFJTDogUmV0dXJuIHZhbHVlIGZvciBmdW5jdGlv
biAoc2hvdWxkIG5vdCBiZSAwKTogJyArIGlkKTsKKzwvc2NyaXB0PgorPC9wcmU+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1ibG9ja2VkLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ldmFsLXNjcmlwdHMtc2V0VGltZW91dC1ibG9ja2VkLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRUaW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK0FMRVJUOiBQQVNTCisKKwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZh
bC1zY3JpcHRzLXNldFRpbWVvdXQtYmxvY2tlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0
cy1zZXRUaW1lb3V0LWJsb2NrZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtc2NyaXB0cy1zZXRU
aW1lb3V0LWJsb2NrZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQ
IiBjb250ZW50PSJzY3JpcHQtc3JjICdub25lJzsgb3B0aW9ucyBkaXNhYmxlLXhzcy1wcm90ZWN0
aW9uIj4KKzwvaGVhZD4KKzxwcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBpZCA9IHNldFRp
bWVvdXQoImFsZXJ0KCdGQUlMJykiLCAwKTsKK2lmIChpZCAhPSAwKQorICAgIGRvY3VtZW50Lndy
aXRlKCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIHN0cmluZyAoc2hvdWxkIGJlIDApOiAnICsgaWQp
OworCit2YXIgaWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICBhbGVydCgnUEFTUycpOwor
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CitpZiAoaWQgPT0gMCkKKyAgICBkb2N1bWVudC53
cml0ZSgnRkFJTDogUmV0dXJuIHZhbHVlIGZvciBmdW5jdGlvbiAoc2hvdWxkIG5vdCBiZSAwKTog
JyArIGlkKTsKKzwvc2NyaXB0PgorPC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>