<?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>193246</bug_id>
          
          <creation_ts>2019-01-08 11:05:05 -0800</creation_ts>
          <short_desc>ASSERT when paused in debugger and console evaluation causes exception</short_desc>
          <delta_ts>2019-01-08 16:39:54 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1492663</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-01-08 11:05:05 -0800</bug_when>
    <thetext>ASSERT when paused in debugger and console evaluation causes exception

Steps to reproduce:
1. Inspect a web page
2. Pause in debugger
3. Type the following in the inspector console: js&gt; {}.x.x.x
  =&gt; By the time you get to &quot;{}.x.|&quot; the inspected page crashes

Assertion:
ASSERTION FAILED: exec == topCallFrame || exec-&gt;isGlobalExec()
./runtime/VM.cpp(833) : void JSC::VM::throwException(JSC::ExecState *, JSC::Exception *)
1   0x42f38f589 WTFCrash
2   0x42f39057b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x430ab1bc8 JSC::VM::throwException(JSC::ExecState*, JSC::Exception*)
4   0x430ab1e30 JSC::VM::throwException(JSC::ExecState*, JSC::JSValue)
5   0x430a902d1 JSC::ThrowScope::throwException(JSC::ExecState*, JSC::JSValue)
6   0x42f8e24cd JSC::throwException(JSC::ExecState*, JSC::ThrowScope&amp;, JSC::JSValue)
7   0x43017279d JSC::throwVMError(JSC::ExecState*, JSC::ThrowScope&amp;, JSC::JSValue)
8   0x4307fa115 JSC::DirectEvalExecutable::create(JSC::ExecState*, JSC::SourceCode const&amp;, bool, JSC::DerivedContextType, bool, JSC::EvalContextType, JSC::VariableEnvironment const*)
9   0x42fe96832 JSC::DebuggerCallFrame::evaluateWithScopeExtension(WTF::String const&amp;, JSC::JSObject*, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
10  0x43047ccbc Inspector::JavaScriptCallFrame::evaluateWithScopeExtension(WTF::String const&amp;, JSC::JSObject*, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) const
11  0x43047cbd8 Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension(JSC::ExecState*)
12  0x43047eac2 Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension(JSC::ExecState*)
13  0x27aa86001177
14  0x42f895029 llint_entry
15  0x42f895029 llint_entry
16  0x42f881c72 vmEntryToJavaScript
17  0x4304e14f7 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
18  0x4304e1b97 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
19  0x4307ae68c JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
20  0x4307ae77a JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
21  0x419db2128 WebCore::JSExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
22  0x419dff0e9 WebCore::functionCallHandlerFromAnyThread(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
23  0x42fc0a9a4 Deprecated::ScriptFunctionCall::call(bool&amp;)
24  0x4303de212 Inspector::InjectedScriptBase::callFunctionWithEvalEnabled(Deprecated::ScriptFunctionCall&amp;, bool&amp;) const
25  0x4303dc7c7 Inspector::InjectedScriptBase::makeCall(Deprecated::ScriptFunctionCall&amp;)
26  0x4303dbc30 Inspector::InjectedScriptBase::makeEvalCall(WTF::String&amp;, Deprecated::ScriptFunctionCall&amp;, WTF::RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject, WTF::DumbPtrTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt; &gt;&amp;, WTF::Optional&lt;bool&gt;&amp;, WTF::Optional&lt;int&gt;&amp;)
27  0x4303dc507 Inspector::InjectedScript::evaluateOnCallFrame(WTF::String&amp;, JSC::JSValue, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, bool, bool, bool, bool, WTF::RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject, WTF::DumbPtrTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt; &gt;&amp;, WTF::Optional&lt;bool&gt;&amp;, WTF::Optional&lt;int&gt;&amp;)
28  0x4304a9582 Inspector::InspectorDebuggerAgent::evaluateOnCallFrame(WTF::String&amp;, WTF::String const&amp;, WTF::String const&amp;, WTF::String const*, bool const*, bool const*, bool const*, bool const*, bool const*, WTF::RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject, WTF::DumbPtrTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt; &gt;&amp;, WTF::Optional&lt;bool&gt;&amp;, WTF::Optional&lt;int&gt;&amp;)
29  0x4304a972c non-virtual thunk to Inspector::InspectorDebuggerAgent::evaluateOnCallFrame(WTF::String&amp;, WTF::String const&amp;, WTF::String const&amp;, WTF::String const*, bool const*, bool const*, bool const*, bool const*, bool const*, WTF::RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject, WTF::DumbPtrTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt; &gt;&amp;, WTF::Optional&lt;bool&gt;&amp;, WTF::Optional&lt;int&gt;&amp;)
30  0x43040b9a5 Inspector::DebuggerBackendDispatcher::evaluateOnCallFrame(long, WTF::RefPtr&lt;WTF::JSONImpl::Object, WTF::DumbPtrTraits&lt;WTF::JSONImpl::Object&gt; &gt;&amp;&amp;)
31  0x430407b2b Inspector::DebuggerBackendDispatcher::dispatch(long, WTF::String const&amp;, WTF::Ref&lt;WTF::JSONImpl::Object, WTF::DumbPtrTraits&lt;WTF::JSONImpl::Object&gt; &gt;&amp;&amp;)
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492664</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-01-08 11:09:08 -0800</bug_when>
    <thetext>This is the inspector evaluating JavaScript when paused, so there are a few things.

    1. The page is paused in JavaScript (nested event loop)
    2. The inspector then evaluates script in its InjectedScript (InjectedScript::evaluateOnCallFrame)
    3. The evaluate on call frame performs an eval on the call frame (DebuggerCallFrame::evaluateWithScopeExtension)

So the &quot;topCallFrame&quot; may be a little tricky here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492694</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-01-08 12:23:44 -0800</bug_when>
    <thetext>Worked through this with Mark. The Debugger is evaluating on a specific call frame (the selected one in Web Inspector) so the target call frame will not be the topCallFrame. We will enhance the assertion for the inspector&apos;s case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492750</commentid>
    <comment_count>3</comment_count>
      <attachid>358634</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-01-08 13:52:53 -0800</bug_when>
    <thetext>Created attachment 358634
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492753</commentid>
    <comment_count>4</comment_count>
      <attachid>358634</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-01-08 14:05:43 -0800</bug_when>
    <thetext>Comment on attachment 358634
[PATCH] Proposed Fix

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

r=me with some suggestions.

&gt; Source/JavaScriptCore/debugger/DebuggerEvalEnabler.h:37
&gt; +        EvalOnCurrentFrame,
&gt; +        EvalOnDebuggerCallFrame,

Now that I have more time to think about it, how about naming these as:
    EvalOnCurrentFrame =&gt; EvalOnCurrentCallFrame
    EvalOnDebuggerCallFrame =&gt; EvalOnCallFrameAtDebuggerEntry

I think these names would be clearer.  What do you think?

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.h:494
&gt; +    const ExecState* m_evalDebuggerCallFrame { nullptr };

I suggest naming this as &quot;m_callFrameAtDebuggerEntry&quot; instead.

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.h:904
&gt; +    const ExecState* evalDebuggerCallFrame() const { return m_evalDebuggerCallFrame; }
&gt; +    void setEvalDebuggerCallFrame(const ExecState* callFrame) { m_evalDebuggerCallFrame = callFrame; }

I suggest renaming these as callFrameAtDebuggerEntry() and setCallFrameAtDebuggerEntry() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492755</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-01-08 14:15:59 -0800</bug_when>
    <thetext>I like those suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492756</commentid>
    <comment_count>6</comment_count>
      <attachid>358636</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-01-08 14:19:58 -0800</bug_when>
    <thetext>Created attachment 358636
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492809</commentid>
    <comment_count>7</comment_count>
      <attachid>358636</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-08 16:39:54 -0800</bug_when>
    <thetext>Comment on attachment 358636
[PATCH] For Landing

Clearing flags on attachment: 358636

Committed r239753: &lt;https://trac.webkit.org/changeset/239753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358634</attachid>
            <date>2019-01-08 13:52:53 -0800</date>
            <delta_ts>2019-01-08 14:16:03 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>debugger-1.patch</filename>
            <type>text/plain</type>
            <size>9873</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTY0ZWQ3OWQ3MC4uNTljOGY4OWEwYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOS0wMS0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIEFTU0VSVCB3aGVuIHBhdXNlZCBpbiBkZWJ1Z2dlciBhbmQgY29uc29sZSBldmFsdWF0aW9u
IGNhdXNlcyBleGNlcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MzI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtQ29tbWFu
ZExpbmVBUEkuaHRtbDoKKyAgICAgICAgQ29ycmVjdCBhIHR5cG8uCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFtZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFt
ZS1leGNlcHRpb24uaHRtbDogQWRkZWQuCisgICAgICAgIE5ldyB0ZXN0IHRoYXQgd291bGQgaGF2
ZSBhc3NlcnRlZCBiZWZvcmUuCisKIDIwMTktMDEtMDcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIFR1cm4gb24gUG9pbnRlciBFdmVudHMgYnkgZGVmYXVsdCBmb3Ig
aU9TCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVP
bkNhbGxGcmFtZS1Db21tYW5kTGluZUFQSS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtQ29tbWFuZExpbmVBUEkuaHRtbAppbmRleCBkYmMx
OWU5OGRhNS4uYzgwZWIwMThlNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLUNvbW1hbmRMaW5lQVBJLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtQ29tbWFuZExp
bmVBUEkuaHRtbApAQCAtNzYsNyArNzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlZhbGlkYXRlQ2FsbEZyYW1lcyIsCi0gICAg
ICAgIGRlc2NyaXB0aW9uOiAiVGVzdDYgZXZhbHVhdGUgY2FuIGFjY2VzcyBDb21tYW5kTGluZUFQ
SSBtZXRob2RzLiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBldmFsdWF0ZSBjYW4gYWNj
ZXNzIENvbW1hbmRMaW5lQVBJIG1ldGhvZHMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRh
dGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KFdJLmRlYnVnZ2VyTWFuYWdlci5h
Y3RpdmVDYWxsRnJhbWUuZnVuY3Rpb25OYW1lID09PSAiYmFyIiwgIlN0cmljdCBjYWxsIGZyYW1l
IGlzIGBiYXJgLiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2V2YWx1YXRlT25DYWxsRnJhbWUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVhYzAwZjBhNzI2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1
YXRlT25DYWxsRnJhbWUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rl
c3RzIGV4Y2VwdGlvbnMgd2l0aCBEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lLgorCisKKz09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRp
b24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lLkV4
Y2VwdGlvbgorUEFTUzogU2hvdWxkIGJlIGEgcnVudGltZSBlcnJvci4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENvbXBsZXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtZXhjZXB0aW9uLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxZDZlZGUxM2JhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxs
RnJhbWUtZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24g
dHJpZ2dlclBhdXNlKCkgeworICAgIGRlYnVnZ2VyOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKyAgICBjb25zdCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEkgPSB0cnVlOworICAgIGNvbnN0IHJldHVybkJ5VmFsdWUgPSB0cnVlOworCisgICAg
SW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRpb24iKTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLmV2YWx1
YXRlT25DYWxsRnJhbWUuRXhjZXB0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGV4
Y2VwdGlvbiBmcm9tIGV2YWx1YXRlT25DYWxsRnJhbWUuIiwKKyAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgIGxldCBjYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFn
ZXIuYWN0aXZlQ2FsbEZyYW1lOworICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1
Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChjYWxsRnJhbWUudGFyZ2V0KTsKKyAgICAgICAgICAg
IGxldCBjYWxsRnJhbWVJZCA9IGNhbGxGcmFtZS5pZDsKKyAgICAgICAgICAgIGxldCBleHByZXNz
aW9uID0gInt9LngiOworICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5ldmFsdWF0ZU9uQ2FsbEZy
YW1lLmludm9rZSh7Y2FsbEZyYW1lSWQsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEksIHJldHVybkJ5VmFsdWV9LCAoZXJyb3IsIHJlc3VsdFZhbHVlLCB3YXNU
aHJvd24pID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZXJyb3Is
ICJTaG91bGQgbm90IGJlIGEgcHJvdG9jb2wgZXJyb3IuIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUcnVlKHdhc1Rocm93biwgIlNob3VsZCBiZSBhIHJ1bnRpbWUgZXJy
b3IuIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkNvbXBsZXRlIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAg
IFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgfQorICAgIH0pCisKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmln
Z2VyUGF1c2UoKSIpOworICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKKyAgICAg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGV4Y2VwdGlvbnMg
d2l0aCBEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE5ZTNiZDI4MWYwLi41NDI5YWQ4MmMyYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDEtMDggIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlQgd2hlbiBw
YXVzZWQgaW4gZGVidWdnZXIgYW5kIGNvbnNvbGUgZXZhbHVhdGlvbiBjYXVzZXMgZXhjZXB0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMyNDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICBJ
bXByb3ZlIGFzc2VydGlvbiB0byBhbGxvdyBmb3IgdGhlIGRlYnVnZ2VyJ3MgZXZhbHVhdGUgb24g
Y2FsbCBmcmFtZSBjb25kaXRpb24uCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpldmFsRGVidWdnZXJDYWxsRnJhbWUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6c2V0RXZhbERlYnVnZ2VyQ2Fs
bEZyYW1lKToKKyAgICAgICAgRGVidWdnZXIgY2FsbCBmcmFtZSBvbmx5IHVzZWQgYnkgYXNzZXJ0
aW9ucy4KKworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcDoKKyAgICAg
ICAgKEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKToK
KyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckV2YWxFbmFibGVyLmg6CisgICAgICAgIChKU0M6
OkRlYnVnZ2VyRXZhbEVuYWJsZXI6OkRlYnVnZ2VyRXZhbEVuYWJsZXIpOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlckV2YWxFbmFibGVyOjp+RGVidWdnZXJFdmFsRW5hYmxlcik6CisgICAgICAgIFdo
ZW4gZXZhbHVhdGluZyBvbiBhIGNhbGwgZnJhbWUsIHNldCBhIGRlYnVnIEdsb2JhbE9iamVjdCBz
dGF0ZS4KKwogMjAxOS0wMS0wNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFsd2F5cyBidWZmZXIgc29tZSBjb25zb2xlIG1l
c3NhZ2VzIHdpdGhvdXQgcmVxdWlyaW5nIGRldmVsb3BlckV4dHJhc0VuYWJsZWQgYmUgZW5hYmxl
ZCBhdCBsb2cgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggMzM0ZDU0MmM2ZTYuLjM0YmIxZGQxNDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFs
dWF0ZVdpdGhTY29wZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHNjcmlwdCwgSlNPYgogICAgIGlm
ICghY29kZUJsb2NrKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAKLSAgICBE
ZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKGNhbGxGcmFtZSk7CisgICAgRGVidWdnZXJF
dmFsRW5hYmxlciBldmFsRW5hYmxlcihjYWxsRnJhbWUsIERlYnVnZ2VyRXZhbEVuYWJsZXI6Ok1v
ZGU6OkV2YWxPbkRlYnVnZ2VyQ2FsbEZyYW1lKTsKIAogICAgIEV2YWxDb250ZXh0VHlwZSBldmFs
Q29udGV4dFR5cGU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJFdmFsRW5hYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaAppbmRleCAwZTRjNGNmYWM0OS4uOGM1MTI0ZGJiZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxF
bmFibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyRXZh
bEVuYWJsZXIuaApAQCAtMzIsMjkgKzMyLDUwIEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBE
ZWJ1Z2dlckV2YWxFbmFibGVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBEZWJ1Z2dlckV2YWxF
bmFibGVyKGNvbnN0IEV4ZWNTdGF0ZSogZXhlYykKKyAgICBlbnVtIGNsYXNzIE1vZGUgeworICAg
ICAgICBFdmFsT25DdXJyZW50RnJhbWUsCisgICAgICAgIEV2YWxPbkRlYnVnZ2VyQ2FsbEZyYW1l
LAorICAgIH07CisKKyAgICBEZWJ1Z2dlckV2YWxFbmFibGVyKGNvbnN0IEV4ZWNTdGF0ZSogZXhl
YywgTW9kZSBtb2RlID0gTW9kZTo6RXZhbE9uQ3VycmVudEZyYW1lKQogICAgICAgICA6IG1fZXhl
YyhleGVjKQotICAgICAgICAsIG1fZXZhbFdhc0Rpc2FibGVkKGZhbHNlKQorI2lmICFBU1NFUlRf
RElTQUJMRUQKKyAgICAgICAgLCBtX21vZGUobW9kZSkKKyNlbmRpZgorICAgICAgICAKICAgICB7
CisgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKICAgICAgICAgaWYgKGV4ZWMpIHsKICAgICAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCk7CiAgICAgICAgICAgICBtX2V2YWxXYXNEaXNhYmxlZCA9ICFnbG9iYWxPYmplY3Qt
PmV2YWxFbmFibGVkKCk7CiAgICAgICAgICAgICBpZiAobV9ldmFsV2FzRGlzYWJsZWQpCiAgICAg
ICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRFdmFsRW5hYmxlZCh0cnVlLCBnbG9iYWxPYmpl
Y3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisg
ICAgICAgICAgICBpZiAobV9tb2RlID09IE1vZGU6OkV2YWxPbkRlYnVnZ2VyQ2FsbEZyYW1lKQor
ICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0RXZhbERlYnVnZ2VyQ2FsbEZyYW1lKGV4
ZWMpOworI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAKICAgICB+RGVidWdnZXJFdmFsRW5hYmxl
cigpCiAgICAgewotICAgICAgICBpZiAobV9ldmFsV2FzRGlzYWJsZWQpIHsKKyAgICAgICAgaWYg
KG1fZXhlYykgewogICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5z
ZXRFdmFsRW5hYmxlZChmYWxzZSwgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3Nh
Z2UoKSk7CisgICAgICAgICAgICBpZiAobV9ldmFsV2FzRGlzYWJsZWQpCisgICAgICAgICAgICAg
ICAgZ2xvYmFsT2JqZWN0LT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZ2xvYmFsT2JqZWN0LT5ldmFs
RGlzYWJsZWRFcnJvck1lc3NhZ2UoKSk7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgICAgICAg
ICAgaWYgKG1fbW9kZSA9PSBNb2RlOjpFdmFsT25EZWJ1Z2dlckNhbGxGcmFtZSkKKyAgICAgICAg
ICAgICAgICBnbG9iYWxPYmplY3QtPnNldEV2YWxEZWJ1Z2dlckNhbGxGcmFtZShudWxscHRyKTsK
KyNlbmRpZgogICAgICAgICB9CiAgICAgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEV4ZWNTdGF0
ZSogbV9leGVjOwotICAgIGJvb2wgbV9ldmFsV2FzRGlzYWJsZWQ7CisgICAgYm9vbCBtX2V2YWxX
YXNEaXNhYmxlZCB7IGZhbHNlIH07CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIERlYnVnZ2Vy
RXZhbEVuYWJsZXI6Ok1vZGUgbV9tb2RlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmlu
ZGV4IDM1N2NhOGJmNjJmLi5lNWY4N2RlNDY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC00OTAsNiArNDkwLDEwIEBAIHB1YmxpYzoK
ICAgICBSdW50aW1lRmxhZ3MgbV9ydW50aW1lRmxhZ3M7CiAgICAgQ29uc29sZUNsaWVudCogbV9j
b25zb2xlQ2xpZW50IHsgbnVsbHB0ciB9OwogCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGNv
bnN0IEV4ZWNTdGF0ZSogbV9ldmFsRGVidWdnZXJDYWxsRnJhbWUgeyBudWxscHRyIH07CisjZW5k
aWYKKwogICAgIHN0YXRpYyBKU19FWFBPUlRfUFJJVkFURSBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwogICAgIGNvbnN0IEdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKiBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwogCkBAIC04OTUsNiArODk5
LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV93ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdl
ID0gZXJyb3JNZXNzYWdlOwogICAgIH0KIAorI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBjb25z
dCBFeGVjU3RhdGUqIGV2YWxEZWJ1Z2dlckNhbGxGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZh
bERlYnVnZ2VyQ2FsbEZyYW1lOyB9CisgICAgdm9pZCBzZXRFdmFsRGVidWdnZXJDYWxsRnJhbWUo
Y29uc3QgRXhlY1N0YXRlKiBjYWxsRnJhbWUpIHsgbV9ldmFsRGVidWdnZXJDYWxsRnJhbWUgPSBj
YWxsRnJhbWU7IH0KKyNlbmRpZgorCiAgICAgdm9pZCByZXNldFByb3RvdHlwZShWTSYsIEpTVmFs
dWUgcHJvdG90eXBlKTsKIAogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAxOTBlNTcxODdkNS4uNzIyYzIxMmQ1
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTgzMCw3ICs4MzAsNyBA
QCB2b2lkIFZNOjpjbGVhclNvdXJjZVByb3ZpZGVyQ2FjaGVzKCkKIAogdm9pZCBWTTo6dGhyb3dF
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKIHsKLSAgICBB
U1NFUlQoZXhlYyA9PSB0b3BDYWxsRnJhbWUgfHwgZXhlYy0+aXNHbG9iYWxFeGVjKCkpOworICAg
IEFTU0VSVChleGVjID09IHRvcENhbGxGcmFtZSB8fCBleGVjLT5pc0dsb2JhbEV4ZWMoKSB8fCBl
eGVjID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZXZhbERlYnVnZ2VyQ2FsbEZyYW1l
KCkpOwogICAgIENhbGxGcmFtZSogdGhyb3dPcmlnaW5GcmFtZSA9IGV4ZWMtPmlzR2xvYmFsRXhl
YygpID8gZXhlYyA6IHRvcEpTQ2FsbEZyYW1lKCk7CiAKICAgICBpZiAoT3B0aW9uczo6YnJlYWtP
blRocm93KCkpIHsK
</data>
<flag name="review"
          id="375459"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358636</attachid>
            <date>2019-01-08 14:19:58 -0800</date>
            <delta_ts>2019-01-08 16:39:54 -0800</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing-2.patch</filename>
            <type>text/plain</type>
            <size>9927</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTY0ZWQ3OWQ3MC4uNThmZDNjMmU4YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOS0wMS0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIEFTU0VSVCB3aGVuIHBhdXNlZCBpbiBkZWJ1Z2dlciBhbmQgY29uc29sZSBldmFsdWF0aW9u
IGNhdXNlcyBleGNlcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MzI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtQ29tbWFuZExpbmVB
UEkuaHRtbDoKKyAgICAgICAgQ29ycmVjdCBhIHR5cG8uCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFtZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFtZS1leGNl
cHRpb24uaHRtbDogQWRkZWQuCisgICAgICAgIE5ldyB0ZXN0IHRoYXQgd291bGQgaGF2ZSBhc3Nl
cnRlZCBiZWZvcmUuCisKIDIwMTktMDEtMDcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFR1cm4gb24gUG9pbnRlciBFdmVudHMgYnkgZGVmYXVsdCBmb3IgaU9TCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxG
cmFtZS1Db21tYW5kTGluZUFQSS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2V2YWx1YXRlT25DYWxsRnJhbWUtQ29tbWFuZExpbmVBUEkuaHRtbAppbmRleCBkYmMxOWU5OGRh
NS4uYzgwZWIwMThlNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLUNvbW1hbmRMaW5lQVBJLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtQ29tbWFuZExpbmVBUEku
aHRtbApAQCAtNzYsNyArNzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKICAgICAgICAgbmFtZTogIlZhbGlkYXRlQ2FsbEZyYW1lcyIsCi0gICAgICAgIGRl
c2NyaXB0aW9uOiAiVGVzdDYgZXZhbHVhdGUgY2FuIGFjY2VzcyBDb21tYW5kTGluZUFQSSBtZXRo
b2RzLiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBldmFsdWF0ZSBjYW4gYWNjZXNzIENv
bW1hbmRMaW5lQVBJIG1ldGhvZHMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
ICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JU
YXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KFdJLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVD
YWxsRnJhbWUuZnVuY3Rpb25OYW1lID09PSAiYmFyIiwgIlN0cmljdCBjYWxsIGZyYW1lIGlzIGBi
YXJgLiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1
YXRlT25DYWxsRnJhbWUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVhYzAwZjBhNzI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25D
YWxsRnJhbWUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIGV4
Y2VwdGlvbnMgd2l0aCBEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lLgorCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRpb24KKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lLkV4Y2VwdGlv
bgorUEFTUzogU2hvdWxkIGJlIGEgcnVudGltZSBlcnJvci4KKworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IENvbXBsZXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtZXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxZDZlZGUxM2JhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUt
ZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdHJpZ2dl
clBhdXNlKCkgeworICAgIGRlYnVnZ2VyOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBj
b25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKyAgICBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVB
UEkgPSB0cnVlOworICAgIGNvbnN0IHJldHVybkJ5VmFsdWUgPSB0cnVlOworCisgICAgSW5zcGVj
dG9yVGVzdC5kZWJ1ZygpOworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRpb24iKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLmV2YWx1YXRlT25D
YWxsRnJhbWUuRXhjZXB0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGV4Y2VwdGlv
biBmcm9tIGV2YWx1YXRlT25DYWxsRnJhbWUuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgIGxldCBjYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0
aXZlQ2FsbEZyYW1lOworICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dlck1h
bmFnZXIuZGF0YUZvclRhcmdldChjYWxsRnJhbWUudGFyZ2V0KTsKKyAgICAgICAgICAgIGxldCBj
YWxsRnJhbWVJZCA9IGNhbGxGcmFtZS5pZDsKKyAgICAgICAgICAgIGxldCBleHByZXNzaW9uID0g
Int9LngiOworICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5ldmFsdWF0ZU9uQ2FsbEZyYW1lLmlu
dm9rZSh7Y2FsbEZyYW1lSWQsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIHJldHVybkJ5VmFsdWV9LCAoZXJyb3IsIHJlc3VsdFZhbHVlLCB3YXNUaHJvd24p
ID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZXJyb3IsICJTaG91
bGQgbm90IGJlIGEgcHJvdG9jb2wgZXJyb3IuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUcnVlKHdhc1Rocm93biwgIlNob3VsZCBiZSBhIHJ1bnRpbWUgZXJyb3IuIik7
CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNvbXBs
ZXRlIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIFdJLmRl
YnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fQorICAgIH0pCisKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyUGF1
c2UoKSIpOworICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihX
SS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGV4Y2VwdGlvbnMgd2l0aCBE
ZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCmluZGV4IGE5ZTNiZDI4MWYwLi45MmUxMjY2YTM4YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDEtMDggIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlQgd2hlbiBwYXVzZWQg
aW4gZGVidWdnZXIgYW5kIGNvbnNvbGUgZXZhbHVhdGlvbiBjYXVzZXMgZXhjZXB0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMyNDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgor
ICAgICAgICAoSlNDOjpWTTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICBJbXByb3ZlIGFzc2Vy
dGlvbiB0byBhbGxvdyBmb3IgdGhlIGRlYnVnZ2VyJ3MgZXZhbHVhdGUgb24gY2FsbCBmcmFtZSBj
b25kaXRpb24uCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjYWxsRnJhbWVBdERlYnVnZ2VyRW50cnkgY29uc3QpOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6c2V0Q2FsbEZyYW1lQXREZWJ1Z2dlckVudHJ5
KToKKyAgICAgICAgRGVidWdnZXIgY2FsbCBmcmFtZSBvbmx5IHVzZWQgYnkgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXJDYWxsRnJhbWU6OmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKToKKyAgICAg
ICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckV2YWxFbmFibGVyLmg6CisgICAgICAgIChKU0M6OkRlYnVn
Z2VyRXZhbEVuYWJsZXI6OkRlYnVnZ2VyRXZhbEVuYWJsZXIpOgorICAgICAgICAoSlNDOjpEZWJ1
Z2dlckV2YWxFbmFibGVyOjp+RGVidWdnZXJFdmFsRW5hYmxlcik6CisgICAgICAgIFdoZW4gZXZh
bHVhdGluZyBvbiBhIGNhbGwgZnJhbWUsIHNldCBhIGRlYnVnIEdsb2JhbE9iamVjdCBzdGF0ZS4K
KwogMjAxOS0wMS0wNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEFsd2F5cyBidWZmZXIgc29tZSBjb25zb2xlIG1lc3NhZ2Vz
IHdpdGhvdXQgcmVxdWlyaW5nIGRldmVsb3BlckV4dHJhc0VuYWJsZWQgYmUgZW5hYmxlZCBhdCBs
b2cgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckNhbGxGcmFtZS5jcHAKaW5kZXggMzM0ZDU0MmM2ZTYuLjYzMGY4ZjBkZWFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAK
QEAgLTIzMiw3ICsyMzIsNyBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFsdWF0ZVdp
dGhTY29wZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHNjcmlwdCwgSlNPYgogICAgIGlmICghY29k
ZUJsb2NrKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAKLSAgICBEZWJ1Z2dl
ckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKGNhbGxGcmFtZSk7CisgICAgRGVidWdnZXJFdmFsRW5h
YmxlciBldmFsRW5hYmxlcihjYWxsRnJhbWUsIERlYnVnZ2VyRXZhbEVuYWJsZXI6Ok1vZGU6OkV2
YWxPbkNhbGxGcmFtZUF0RGVidWdnZXJFbnRyeSk7CiAKICAgICBFdmFsQ29udGV4dFR5cGUgZXZh
bENvbnRleHRUeXBlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckV2YWxFbmFibGVyLmgKaW5kZXggMGU0YzRjZmFjNDkuLjliMjczOTU0Mzg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJFdmFs
RW5hYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2
YWxFbmFibGVyLmgKQEAgLTMyLDI5ICszMiw1MCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3Mg
RGVidWdnZXJFdmFsRW5hYmxlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRGVidWdnZXJFdmFs
RW5hYmxlcihjb25zdCBFeGVjU3RhdGUqIGV4ZWMpCisgICAgZW51bSBjbGFzcyBNb2RlIHsKKyAg
ICAgICAgRXZhbE9uQ3VycmVudENhbGxGcmFtZSwKKyAgICAgICAgRXZhbE9uQ2FsbEZyYW1lQXRE
ZWJ1Z2dlckVudHJ5LAorICAgIH07CisKKyAgICBEZWJ1Z2dlckV2YWxFbmFibGVyKGNvbnN0IEV4
ZWNTdGF0ZSogZXhlYywgTW9kZSBtb2RlID0gTW9kZTo6RXZhbE9uQ3VycmVudENhbGxGcmFtZSkK
ICAgICAgICAgOiBtX2V4ZWMoZXhlYykKLSAgICAgICAgLCBtX2V2YWxXYXNEaXNhYmxlZChmYWxz
ZSkKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgICAgICwgbV9tb2RlKG1vZGUpCisjZW5kaWYK
KyAgICAgICAgCiAgICAgeworICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7CiAgICAgICAgIGlm
IChleGVjKSB7CiAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgICAgICAgICAgbV9ldmFsV2FzRGlzYWJsZWQg
PSAhZ2xvYmFsT2JqZWN0LT5ldmFsRW5hYmxlZCgpOwogICAgICAgICAgICAgaWYgKG1fZXZhbFdh
c0Rpc2FibGVkKQogICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0RXZhbEVuYWJsZWQo
dHJ1ZSwgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSk7CisjaWYgIUFT
U0VSVF9ESVNBQkxFRAorICAgICAgICAgICAgaWYgKG1fbW9kZSA9PSBNb2RlOjpFdmFsT25DYWxs
RnJhbWVBdERlYnVnZ2VyRW50cnkpCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRD
YWxsRnJhbWVBdERlYnVnZ2VyRW50cnkoZXhlYyk7CisjZW5kaWYKICAgICAgICAgfQogICAgIH0K
IAogICAgIH5EZWJ1Z2dlckV2YWxFbmFibGVyKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2V2YWxX
YXNEaXNhYmxlZCkgeworICAgICAgICBpZiAobV9leGVjKSB7CiAgICAgICAgICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9leGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0g
ICAgICAgICAgICBnbG9iYWxPYmplY3QtPnNldEV2YWxFbmFibGVkKGZhbHNlLCBnbG9iYWxPYmpl
Y3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGlmIChtX2V2YWxX
YXNEaXNhYmxlZCkKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnNldEV2YWxFbmFibGVk
KGZhbHNlLCBnbG9iYWxPYmplY3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyNpZiAh
QVNTRVJUX0RJU0FCTEVECisgICAgICAgICAgICBpZiAobV9tb2RlID09IE1vZGU6OkV2YWxPbkNh
bGxGcmFtZUF0RGVidWdnZXJFbnRyeSkKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnNl
dENhbGxGcmFtZUF0RGVidWdnZXJFbnRyeShudWxscHRyKTsKKyNlbmRpZgogICAgICAgICB9CiAg
ICAgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEV4ZWNTdGF0ZSogbV9leGVjOwotICAgIGJvb2wg
bV9ldmFsV2FzRGlzYWJsZWQ7CisgICAgYm9vbCBtX2V2YWxXYXNEaXNhYmxlZCB7IGZhbHNlIH07
CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIERlYnVnZ2VyRXZhbEVuYWJsZXI6Ok1vZGUgbV9t
b2RlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDM1N2NhOGJmNjJmLi5lZjU5
N2ZiNzg4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCkBAIC00OTAsNiArNDkwLDEwIEBAIHB1YmxpYzoKICAgICBSdW50aW1lRmxhZ3MgbV9y
dW50aW1lRmxhZ3M7CiAgICAgQ29uc29sZUNsaWVudCogbV9jb25zb2xlQ2xpZW50IHsgbnVsbHB0
ciB9OwogCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGNvbnN0IEV4ZWNTdGF0ZSogbV9jYWxs
RnJhbWVBdERlYnVnZ2VyRW50cnkgeyBudWxscHRyIH07CisjZW5kaWYKKwogICAgIHN0YXRpYyBK
U19FWFBPUlRfUFJJVkFURSBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlOwogICAgIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiBtX2ds
b2JhbE9iamVjdE1ldGhvZFRhYmxlOwogCkBAIC04OTUsNiArODk5LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgbV93ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlOwog
ICAgIH0KIAorI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBjb25zdCBFeGVjU3RhdGUqIGNhbGxG
cmFtZUF0RGVidWdnZXJFbnRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbEZyYW1lQXREZWJ1Z2dl
ckVudHJ5OyB9CisgICAgdm9pZCBzZXRDYWxsRnJhbWVBdERlYnVnZ2VyRW50cnkoY29uc3QgRXhl
Y1N0YXRlKiBjYWxsRnJhbWUpIHsgbV9jYWxsRnJhbWVBdERlYnVnZ2VyRW50cnkgPSBjYWxsRnJh
bWU7IH0KKyNlbmRpZgorCiAgICAgdm9pZCByZXNldFByb3RvdHlwZShWTSYsIEpTVmFsdWUgcHJv
dG90eXBlKTsKIAogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAxOTBlNTcxODdkNS4uZmJiZmU1YTgyY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTgzMCw3ICs4MzAsNyBAQCB2b2lk
IFZNOjpjbGVhclNvdXJjZVByb3ZpZGVyQ2FjaGVzKCkKIAogdm9pZCBWTTo6dGhyb3dFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKIHsKLSAgICBBU1NFUlQo
ZXhlYyA9PSB0b3BDYWxsRnJhbWUgfHwgZXhlYy0+aXNHbG9iYWxFeGVjKCkpOworICAgIEFTU0VS
VChleGVjID09IHRvcENhbGxGcmFtZSB8fCBleGVjLT5pc0dsb2JhbEV4ZWMoKSB8fCBleGVjID09
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbEZyYW1lQXREZWJ1Z2dlckVudHJ5KCkp
OwogICAgIENhbGxGcmFtZSogdGhyb3dPcmlnaW5GcmFtZSA9IGV4ZWMtPmlzR2xvYmFsRXhlYygp
ID8gZXhlYyA6IHRvcEpTQ2FsbEZyYW1lKCk7CiAKICAgICBpZiAoT3B0aW9uczo6YnJlYWtPblRo
cm93KCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>