<?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>93661</bug_id>
          
          <creation_ts>2012-08-09 14:58:26 -0700</creation_ts>
          <short_desc>[JSC] MutationObservers should not create circular, leaky references</short_desc>
          <delta_ts>2013-01-30 12:24:28 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95519</dependson>
    
    <dependson>96034</dependson>
    
    <dependson>97955</dependson>
    
    <dependson>97956</dependson>
    
    <dependson>102328</dependson>
    
    <dependson>102546</dependson>
    
    <dependson>102744</dependson>
          <blocked>68729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>abarth</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>rafaelw</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sukolsak</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691892</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-09 14:58:26 -0700</bug_when>
    <thetext>In an email, abarth wrote:

--------
In reading the MutationObservers code recently, I had the following
questions.  Although these questions are phrased in terms of V8, I
have the same questions w.r.t. the JavaScriptCore implementation.

1) Do MutationObservers leak memory?  Specification, consider the
following JavaScript:

function foo() {
  function bar() {
    alert(observer.qux);
  }
  var observer = new MutationObserver(bar);
}

How does the memory we allocate for WebCore::MutationObserver ever get
freed?  It appears that

A) MutationObserver has a RefPtr&lt;MutationCallback&gt; m_callback, which
(concretely) is of type V8MutationCallback
B) V8MutationCallback has a v8::Persistent&lt;v8::Object&gt; m_callback,
which is a handle to the JavaScript function bar().
C) bar() is a closure that contains observer, which (concretely) is of
type V8MutationObserver, which holds a reference to MutationObserver
via the wrapper map.

That appears to be a reference cycle that loops through the V8 and C++
heaps, which means we&apos;ll leak.  Is there some mechanism that saves us
from this leak?

2) What keeps the MutationObserver JavaScript wrapper alive?
Specification, consider the following JavaScript:

function bar(mutations, observer) {
    alert(observer.qux);
}
function foo() {
  var observer = new MutationObserver(bar);
  observer.qux = &quot;PASS&quot;;
  observer.observe(document.body, ...);
}

Once foo() completes, there are no longer any references to observer
in the V8 heap, so the V8 garbage collector will collect the
V8MutationObserver object (and we&apos;ll remove it from the wrapper map).
Presumably Node::registerMutationObserver will cause the DOM to retain
the underlying WebCore::MutationObserver object.  At some point in the
future, the mutation observer will trigger and call bar.  The second
argument to bar is the MutationObserver object, which will get a fresh
JavaScript wrapper because the previous JavaScript wrapper is no
longer present in the wrapper map.  The new wrapper will not have
property qux because that property was stored on the old wraper, which
was discarded.
---------

The answers to Adam&apos;s questions here is that both (1) and (2) are problems. I suspect that solving (1) (by pushing the circular references into the JS heap) will also solve (2) in the process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698585</commentid>
    <comment_count>1</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-17 12:59:19 -0700</bug_when>
    <thetext>Do you know where to start on this? What code should I be looking at that does this already?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698764</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-17 16:27:24 -0700</bug_when>
    <thetext>bindings/v8/*EventListener* is probably a good start, at least to get familiar with the issues involved (weak handles, hidden properties).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699072</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-19 13:38:57 -0700</bug_when>
    <thetext>&gt; Do you know where to start on this? What code should I be looking at that does this already?

There&apos;s a drawing on a whiteboard in the SF office about one approach.  We can talk it through on Monday if you&apos;re available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699073</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-19 13:43:08 -0700</bug_when>
    <thetext>The key idea is to store callback as a (hidden) property on the MutationObserver wrapper object rather than via a persistent handle in C++ land.  That should keep any cycles in the V8 heap so that the V8 garbage collector can deal with them.

One approach to solving problem (2), is to make MutationObserver an ActiveDOMObject so that it can implement hasPendingActivity and can be notified when its document is stopped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706697</commentid>
    <comment_count>5</comment_count>
      <attachid>161050</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 13:55:35 -0700</bug_when>
    <thetext>Created attachment 161050
Patch

Fix cicular references and dropped wrappers. This patch is rather big since it introduces new primitives for doing this abstractly which should also benefit UndoManager and future APIs. Im not sure how to write tests for this, does someone have an example of tests for leaks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706716</commentid>
    <comment_count>6</comment_count>
      <attachid>161050</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 14:09:17 -0700</bug_when>
    <thetext>Comment on attachment 161050
Patch

Sorry, my JSC code and compile was busted. Trying to fix that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706767</commentid>
    <comment_count>7</comment_count>
      <attachid>161068</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 15:02:57 -0700</bug_when>
    <thetext>Created attachment 161068
Patch

Fix XCode build files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706773</commentid>
    <comment_count>8</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 15:07:42 -0700</bug_when>
    <thetext>Okay this should probably be split into 3 patches. One for JSC, one for V8, and finally a patch here that uses them to fix MutationObservers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706787</commentid>
    <comment_count>9</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 15:16:12 -0700</bug_when>
    <thetext>This should probably be split into 3 patches. One for JSC, one for V8, and finally a patch here that uses them to fix MutationObservers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706796</commentid>
    <comment_count>10</comment_count>
      <attachid>161050</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-28 15:34:30 -0700</bug_when>
    <thetext>Comment on attachment 161050
Patch

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

Comments on the generic and V8 portions; JSC is not my strong suit.

&gt; Source/WebCore/bindings/v8/V8MutationCallback.cpp:58
&gt; +    if (!mutations)

This ugly little block will go away if you make the first arg a const ref.

&gt; Source/WebCore/bindings/v8/V8MutationCallback.h:47
&gt; +class V8MutationCallback : public MutationCallback, public ActiveDOMCallback, public V8WrapperRetainedValue&lt;MutationObserver&gt; {

Design question: how&apos;d you end up with inheritance for V8WrapperRetainedValue instead of composition? It&apos;s a little confusing to me since the V8MutationCallback _itself_ isn&apos;t &quot;wrapper-retained&quot;, only the underlying v8::Object.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:50
&gt; +        ASSERT(!wrapper.IsEmpty());

Any reason not to ASSERT(!value.IsEmpty()) too?

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:53
&gt; +        wrapper-&gt;SetHiddenValue(m_propertyName, value);

Seems like this should probably be before the makeWeak() calls, since SetHiddenValue() can trigger GC (though I guess |wrapper| and |value| will likely be alive until this constructor finishes.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:67
&gt; +    void releaseScriptValue()

Why is this protected instead of private?

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:69
&gt; +        v8::HandleScope handleScope;

Don&apos;t think you need this HandleScope.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:78
&gt; +    static v8::Persistent&lt;v8::String&gt; createPropertyName()

Why do we need a new propertyName each time? I guess this is for generality? Seems like in this case, there&apos;s no way for a MutationObserver to have more than one MutationCallback associated with it. Not sure it&apos;s worth the complexity for now (for example, I don&apos;t think this code is thread-safe).

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:86
&gt; +    OwnHandle&lt;v8::Object&gt; m_wrapper;

OwnHandle is sadly dead as of a week ago (replaced by SharedPersistent), but that doesn&apos;t support weak handles. abarth, is the correct thing here to roll-your-own weak handles using v8 API?

&gt; Source/WebCore/bindings/v8/custom/V8MutationObserverCustom.cpp:68
&gt; +    RefPtr&lt;MutationCallback&gt; callback = V8MutationCallback::create(wrapper, arg-&gt;ToObject(), context);

Since you&apos;ve already type-checked arg above, this can just be arg.As&lt;v8::Object&gt;() (just a type-cast, no need to run code).

&gt; Source/WebCore/dom/MutationCallback.h:51
&gt; +    virtual bool call(MutationRecordArray*, MutationObserver*) = 0;

Now that we&apos;re not subject to the whims of the IDL compiler, this ought to be a &quot;const MutationRecordArray&amp;&quot; (and MutationRecordVector&apos;s probably a better name, if you feel like changing that too; you could even drop the typedef altogether, which again was only there to satisfy WebKit IDL).

&gt; Source/WebCore/dom/MutationObserver.h:95
&gt; +    explicit MutationObserver(PassRefPtr&lt;MutationCallback&gt;, ScriptExecutionContext*);

Nit: can drop the &quot;explicit&quot; here given two args.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706813</commentid>
    <comment_count>11</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 15:57:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 161050 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161050&amp;action=review
&gt;
&gt; ...
&gt; 
&gt; Design question: how&apos;d you end up with inheritance for V8WrapperRetainedValue instead of composition? It&apos;s a little confusing to me since the V8MutationCallback _itself_ isn&apos;t &quot;wrapper-retained&quot;, only the underlying v8::Object.

No reason,  but it does require more manual code in the JSC side without it since you&apos;d have to expose the retainedBy method yourself. I can change to composition if you&apos;d prefer?

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:50
&gt; &gt; +        ASSERT(!wrapper.IsEmpty());
&gt; 
&gt; Any reason not to ASSERT(!value.IsEmpty()) too?

It didn&apos;t seem like a restriction that was necessary on this generic construct. For instance you may allow new AwesomeNewAPI() {} and just create a noop ApiCallback. Since that&apos;s a future thing I&apos;ll add an ASSERT for now.


&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:67
&gt; &gt; +    void releaseScriptValue()
&gt; 
&gt; Why is this protected instead of private?

I had done it so someone could release it early, but thinking about it now we should probably make it private and let you manage the lifecycle indirectly.

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:78
&gt; &gt; +    static v8::Persistent&lt;v8::String&gt; createPropertyName()
&gt; 
&gt; Why do we need a new propertyName each time? I guess this is for generality? Seems like in this case, there&apos;s no way for a MutationObserver to have more than one MutationCallback associated with it. Not sure it&apos;s worth the complexity for now (for example, I don&apos;t think this code is thread-safe).

UndoManager has an API like:

undoManager.transact({undo: function() {} });
undoManager.transact({undo: function() {} });
undoManager.transact({undo: function() {} });

And this new generic API allows you do:

undoManager-&gt;transact(DOMTransaction::create(undoManagerWrapper, arg[0]))

and not worry about maintaining an array, or doing the inversion they have right now where DOMTransaction actually gets it&apos;s own wrapper, and then sets a hidden property cycle on it, and then uses a custom GC marking function (which is rather confusing to understand).

http://code.google.com/p/chromium/source/search?q=V8DomTransaction&amp;origq=V8DomTransaction&amp;btnG=Search+Trunk

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:86
&gt; &gt; +    OwnHandle&lt;v8::Object&gt; m_wrapper;
&gt; 
&gt; OwnHandle is sadly dead as of a week ago (replaced by SharedPersistent), but that doesn&apos;t support weak handles. abarth, is the correct thing here to roll-your-own weak handles using v8 API?

Doh! That sucks, since this worked perfectly :) It&apos;d be unfortunate to have to roll my own weak handle. Can we just add that feature back into the SharedPersistent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706825</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-28 16:02:59 -0700</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:86
&gt; &gt; &gt; +    OwnHandle&lt;v8::Object&gt; m_wrapper;
&gt; &gt; 
&gt; &gt; OwnHandle is sadly dead as of a week ago (replaced by SharedPersistent), but that doesn&apos;t support weak handles. abarth, is the correct thing here to roll-your-own weak handles using v8 API?
&gt; 
&gt; Doh! That sucks, since this worked perfectly :) It&apos;d be unfortunate to have to roll my own weak handle. Can we just add that feature back into the SharedPersistent?

OwnHandle got renamed to ScopedPersistent.  You can still use the weak handle functionality directly from V8.

(I&apos;m going to delete SharedPersistent in favor of updating the one client to use ScopedPersistent as well.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706831</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-28 16:07:57 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Design question: how&apos;d you end up with inheritance for V8WrapperRetainedValue instead of composition? It&apos;s a little confusing to me since the V8MutationCallback _itself_ isn&apos;t &quot;wrapper-retained&quot;, only the underlying v8::Object.
&gt; 
&gt; No reason,  but it does require more manual code in the JSC side without it since you&apos;d have to expose the retainedBy method yourself. I can change to composition if you&apos;d prefer?

If it makes it easier for you to have the V8 and JSC versions match up, that&apos;s fine with me, I don&apos;t think this will be used often enough for it to be a big deal either way.

&gt; &gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:78
&gt; &gt; &gt; +    static v8::Persistent&lt;v8::String&gt; createPropertyName()
&gt; &gt; 
&gt; &gt; Why do we need a new propertyName each time? I guess this is for generality? Seems like in this case, there&apos;s no way for a MutationObserver to have more than one MutationCallback associated with it. Not sure it&apos;s worth the complexity for now (for example, I don&apos;t think this code is thread-safe).
&gt; 
&gt; UndoManager has an API like:
&gt; 
&gt; undoManager.transact({undo: function() {} });
&gt; undoManager.transact({undo: function() {} });
&gt; undoManager.transact({undo: function() {} });
&gt; 
&gt; And this new generic API allows you do:
&gt; 
&gt; undoManager-&gt;transact(DOMTransaction::create(undoManagerWrapper, arg[0]))
&gt; 
&gt; and not worry about maintaining an array, or doing the inversion they have right now where DOMTransaction actually gets it&apos;s own wrapper, and then sets a hidden property cycle on it, and then uses a custom GC marking function (which is rather confusing to understand).
&gt; 
&gt; http://code.google.com/p/chromium/source/search?q=V8DomTransaction&amp;origq=V8DomTransaction&amp;btnG=Search+Trunk

Sounds reasonable. If we do go with this new-name-each-time method, then you&apos;ll want to make this thread-safe, probably by moving the counter to V8PerIsolateData. I also suspect you&apos;ll want some other prefix on there besides the number, otherwise it&apos;d be pretty easy for someone to do the same trick elsewhere and use &apos;WebCore::HiddenProperty::0&apos; for something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706838</commentid>
    <comment_count>14</comment_count>
      <attachid>161068</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-28 16:18:16 -0700</bug_when>
    <thetext>Comment on attachment 161068
Patch

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

This looks like a very plausible approach.  I agree with inferno that we should try to do this with composition.

&gt; Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp:63
&gt;      Vector&lt;char, 64&gt; prefixedName;
&gt;      prefixedName.append(V8_HIDDEN_PROPERTY_PREFIX, sizeof(V8_HIDDEN_PROPERTY_PREFIX) - 1);
&gt;      ASSERT(name &amp;&amp; strlen(name));
&gt;      prefixedName.append(name, strlen(name));

We should add a call to prefixedName.reserveCapacity(...)

&gt; Source/WebCore/bindings/v8/V8HiddenPropertyName.h:60
&gt; -        static v8::Handle&lt;v8::String&gt; hiddenReferenceName(const char* name);
&gt; +        static v8::Handle&lt;v8::String&gt; hiddenReferenceName(const char* name, bool symbol = true);

Rather than using a raw boolean parameter, can we use an enum?

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:51
&gt; +        m_value.makeWeak();

I don&apos;t think you need to keep a handle to m_value.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:52
&gt; +        m_wrapper.makeWeak();

It makes sense to keep a reference to m_wrapper so that you can remove the property if C++ tells you that you don&apos;t need it anymore.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:65
&gt; +    v8::Handle&lt;v8::Object&gt; scriptValue() const
&gt; +    {
&gt; +        return m_value.get();
&gt; +    }

This doesn&apos;t appear to be needed.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:80
&gt; +        static double nextId = 0;

Please add an ASSERT(mainThread()) because this code isn&apos;t thread-safe.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:83
&gt; +        return v8::Persistent&lt;v8::String&gt;::New(V8HiddenPropertyName::hiddenReferenceName(numberToString(nextId++, buffer), false));

This isn&apos;t sufficient to guarantee the uniqueness of the name.  We need to add the string &quot;V8WrapperRetainedValue&quot; in there somewhere.

&gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:88
&gt; +    v8::Persistent&lt;v8::String&gt; m_propertyName;

This should be a ScopedPersistent.  Currently you&apos;re leaking the v8::String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706973</commentid>
    <comment_count>15</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-28 18:29:44 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 161068 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161068&amp;action=review
&gt; 
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:51
&gt; &gt; +        m_value.makeWeak();
&gt; 
&gt; I don&apos;t think you need to keep a handle to m_value.

You do, so you can access the value later for using it as a callback, or as the Object with &quot;undo&quot; etc. later. If we don&apos;t keep a handle then we need to go through GetHiddenValue in scriptValue() which requires a hash table lookup.

I chose this approach since you only pay the hash table penalty once with the intention of seeing if we can migrate some of the other custom GC things to this approach as well. Indeed if we switch to using SetHiddenField here we could probably clean up V8EventListener without a perf hit too.

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:52
&gt; &gt; +        m_wrapper.makeWeak();
&gt; 
&gt; It makes sense to keep a reference to m_wrapper so that you can remove the property if C++ tells you that you don&apos;t need it anymore.

We do keep a reference to it, but indirectly through the ActiveDOMObject wrapper. This must be weak by design, otherwise we create a cycle because MutationObserver has a reference to it&apos;s own wrapper through this object, which has a reference to the callback, which has a reference to the wrapper, which has a reference to the MutationObserver and we&apos;re back where we started. :)

Both are weak intentionally, it&apos;s subtle.

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:65
&gt; &gt; +    v8::Handle&lt;v8::Object&gt; scriptValue() const
&gt; &gt; +    {
&gt; &gt; +        return m_value.get();
&gt; &gt; +    }
&gt; 
&gt; This doesn&apos;t appear to be needed.

I don&apos;t understand. You need a getter so V8MutationCallback can get the value back later to use it as a callback function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706981</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-28 18:43:08 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 161068 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161068&amp;action=review
&gt; &gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:51
&gt; &gt; &gt; +        m_value.makeWeak();
&gt; &gt; 
&gt; &gt; I don&apos;t think you need to keep a handle to m_value.
&gt; 
&gt; You do, so you can access the value later for using it as a callback, or as the Object with &quot;undo&quot; etc. later. If we don&apos;t keep a handle then we need to go through GetHiddenValue in scriptValue() which requires a hash table lookup.

I feel like we should use GetHiddenValue until we have a benchmark that tells us that it&apos;s too slow.

&gt; I chose this approach since you only pay the hash table penalty once with the intention of seeing if we can migrate some of the other custom GC things to this approach as well. Indeed if we switch to using SetHiddenField here we could probably clean up V8EventListener without a perf hit too.

That seems fine, but we should add that complexity when it&apos;s needed and we can show the perf win.

&gt; &gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:52
&gt; &gt; &gt; +        m_wrapper.makeWeak();
&gt; &gt; 
&gt; &gt; It makes sense to keep a reference to m_wrapper so that you can remove the property if C++ tells you that you don&apos;t need it anymore.
&gt; 
&gt; We do keep a reference to it, but indirectly through the ActiveDOMObject wrapper. This must be weak by design, otherwise we create a cycle because MutationObserver has a reference to it&apos;s own wrapper through this object, which has a reference to the callback, which has a reference to the wrapper, which has a reference to the MutationObserver and we&apos;re back where we started. :)
&gt; 
&gt; Both are weak intentionally, it&apos;s subtle.

Yeah, I understand.  :)

&gt; &gt; &gt; Source/WebCore/bindings/v8/V8WrapperRetainedValue.h:65
&gt; &gt; &gt; +    v8::Handle&lt;v8::Object&gt; scriptValue() const
&gt; &gt; &gt; +    {
&gt; &gt; &gt; +        return m_value.get();
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; This doesn&apos;t appear to be needed.
&gt; 
&gt; I don&apos;t understand. You need a getter so V8MutationCallback can get the value back later to use it as a callback function.

IMHO, we should get it via GetHiddenValue.

The alternative is to add an implicit reference during GC and avoid the storage overhead in the wrapper.  As-is, we&apos;re paying the memory overhead twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712716</commentid>
    <comment_count>17</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-05 17:52:43 -0700</bug_when>
    <thetext>After much research I realize that my approach here for JSC leaks. Instead it should just use PrivateName and model the code in V8DependentRetained (see 95519).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713827</commentid>
    <comment_count>18</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-06 16:23:57 -0700</bug_when>
    <thetext>Please add a regression test. You should be able to test for a memory leak using the internals object, looping the leaky code, and measuring memory usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724783</commentid>
    <comment_count>19</comment_count>
      <attachid>164969</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-20 13:15:27 -0700</bug_when>
    <thetext>Created attachment 164969
Patch

This also fixes the broken V8DependentRetained and JSDepenendentRetained which never actually worked because they were submitted in patches that don&apos;t use them so they never had to compile...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724795</commentid>
    <comment_count>20</comment_count>
      <attachid>164969</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-20 13:22:53 -0700</bug_when>
    <thetext>Comment on attachment 164969
Patch

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

&gt; Source/WebCore/bindings/js/JSDependentRetained.h:85
&gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;

It&apos;s not a problem to strongly retain the global object?

&gt; Source/WebCore/dom/MutationObserver.h:95
&gt; -    explicit MutationObserver(PassRefPtr&lt;MutationCallback&gt;);
&gt; +    MutationObserver(PassRefPtr&lt;MutationCallback&gt;, ScriptExecutionContext*);

I think we typically pass the ScriptExecutionContext* as the first argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724796</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-20 13:23:22 -0700</bug_when>
    <thetext>The LGTM, with the one JSC question above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724830</commentid>
    <comment_count>22</comment_count>
      <attachid>164969</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-09-20 13:47:38 -0700</bug_when>
    <thetext>Comment on attachment 164969
Patch

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

This looks good, attached are a few cleanups you could do now or later.

&gt; Source/WebCore/bindings/js/JSMutationCallback.cpp:69
&gt; +    for (size_t i = 0; i &lt; mutations.size(); ++i)

Looks like JSDOMBinding.h has a helper that&apos;ll let you get rid of this loop: jsArray()

&gt; Source/WebCore/bindings/v8/V8MutationCallback.cpp:66
&gt; +    for (size_t i = 0; i &lt; mutations.size(); ++i)

Similar to jsArray(), there&apos;s a v8Array() that you can use here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724831</commentid>
    <comment_count>23</comment_count>
      <attachid>164969</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-20 13:51:17 -0700</bug_when>
    <thetext>Comment on attachment 164969
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSDependentRetained.h:85
&gt;&gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;
&gt; 
&gt; It&apos;s not a problem to strongly retain the global object?

Good question. The only place anyone keeps this thing around is in JSCallbackData so I don&apos;t have an example. I think you&apos;re right that this should be Weak.

&gt;&gt; Source/WebCore/dom/MutationObserver.h:95
&gt;&gt; +    MutationObserver(PassRefPtr&lt;MutationCallback&gt;, ScriptExecutionContext*);
&gt; 
&gt; I think we typically pass the ScriptExecutionContext* as the first argument.

Ah, this is confusing, the code generator puts it last, but people put it first. :P See: generated V8FileCallback vs XMLHttpRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724833</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-20 13:54:29 -0700</bug_when>
    <thetext>&gt; Ah, this is confusing, the code generator puts it last, but people put it first. :P See: generated V8FileCallback vs XMLHttpRequest.

We should fix the code generator to be more like people.  ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724842</commentid>
    <comment_count>25</comment_count>
      <attachid>164969</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-20 14:08:16 -0700</bug_when>
    <thetext>Comment on attachment 164969
Patch

Attachment 164969 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13953261</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724847</commentid>
    <comment_count>26</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-20 14:12:39 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 164969 [details])
&gt; Attachment 164969 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/13953261

I don&apos;t know how to fix this link error. I added JS_EXPORT_PRIVATE and that fixes the mac build. How do I export symbols for windows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724852</commentid>
    <comment_count>27</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-20 14:19:42 -0700</bug_when>
    <thetext>Add the symbol to .def file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724872</commentid>
    <comment_count>28</comment_count>
      <attachid>164986</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-20 14:31:03 -0700</bug_when>
    <thetext>Created attachment 164986
Patch

Attempt to fix the windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724873</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 14:34:44 -0700</bug_when>
    <thetext>Attachment 164986 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/ChangeLog:10:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724879</commentid>
    <comment_count>30</comment_count>
      <attachid>164987</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-20 14:35:52 -0700</bug_when>
    <thetext>Created attachment 164987
Patch

Attempt to fix the windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725131</commentid>
    <comment_count>31</comment_count>
      <attachid>164987</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-20 21:08:47 -0700</bug_when>
    <thetext>Comment on attachment 164987
Patch

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

&gt; Source/WebCore/bindings/js/JSMutationCallback.h:55
&gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;

This is a reference cycle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731056</commentid>
    <comment_count>32</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-28 16:40:15 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 164987 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164987&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSMutationCallback.h:55
&gt; &gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;
&gt; 
&gt; This is a reference cycle.

That&apos;s a JSC::Weak in the patch you r-&apos;ed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731077</commentid>
    <comment_count>33</comment_count>
      <attachid>164987</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-28 17:24:49 -0700</bug_when>
    <thetext>Comment on attachment 164987
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/JSMutationCallback.h:55
&gt;&gt;&gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;
&gt;&gt; 
&gt;&gt; This is a reference cycle.
&gt; 
&gt; That&apos;s a JSC::Weak in the patch you r-&apos;ed.

Err, my bad, I was looking at the one in JSDependentRetained. What should I use here instead? Can I just use a Weak?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761501</commentid>
    <comment_count>34</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-11-08 02:24:55 -0800</bug_when>
    <thetext>What&apos;s the status of this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761510</commentid>
    <comment_count>35</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-08 02:31:15 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; What&apos;s the status of this patch?

I was going to attempt it again this week. I got side tracked killing the NodeRareData map in Bug 100057. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767668</commentid>
    <comment_count>36</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-14 20:31:04 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 164987 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164987&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSMutationCallback.h:55
&gt; &gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;
&gt; 
&gt; This is a reference cycle.

Geoffrey, How should I be solving this? You&apos;re saying this is a cycle because the wrapper for MutationObserver has a JSC::Strong for the window as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768331</commentid>
    <comment_count>37</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-15 11:16:47 -0800</bug_when>
    <thetext>&gt; Geoffrey, How should I be solving this? 

I guess that depends. What behavior do you want?

&gt; You&apos;re saying this is a cycle because the wrapper for MutationObserver has a JSC::Strong for the window as well?

JSMutationCallback::m_globalObject is a leak because it&apos;s a strong reference, so if anything in the DOM references the callback, you have a retain cycle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768334</commentid>
    <comment_count>38</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-15 11:23:16 -0800</bug_when>
    <thetext>&gt; I guess that depends. What behavior do you want?

We have a whiteboard diagram somewhere that explains what we&apos;re trying to accomplish, but that&apos;s hard to communicate over the interwebs.

In Bug 102328, we&apos;re making MutationObserver into an ActiveDOMObject.  While the MutationObserver has pending activity or while the MutationObserver wrapper is still referenced from a live JavaScript object, we&apos;d like to keep the MutationObserver wrapper and its callback alive.  Once that is no longer the case, we&apos;d like the wrapper and the callback to be collected by the garbage collector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768576</commentid>
    <comment_count>39</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-11-15 15:34:09 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; &gt; Geoffrey, How should I be solving this? 
&gt; 
&gt; I guess that depends. What behavior do you want?
&gt; 
&gt; &gt; You&apos;re saying this is a cycle because the wrapper for MutationObserver has a JSC::Strong for the window as well?
&gt; 
&gt; JSMutationCallback::m_globalObject is a leak because it&apos;s a strong reference, so if anything in the DOM references the callback, you have a retain cycle.

I&apos;m curious why is this is not also a problem for the V8 side of the patch. V8MutationCallback::m_worldContext holds a v8::Persistent handle to a v8::Context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768578</commentid>
    <comment_count>40</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-15 15:38:52 -0800</bug_when>
    <thetext>v8::Persistent is poorly named.  v8::Persistent just means &quot;raw pointer to a V8 object&quot;.  It doesn&apos;t have any lifetime implications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778714</commentid>
    <comment_count>41</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-28 22:50:09 -0800</bug_when>
    <thetext>Someone needs to fix JSC for circular references and this is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779034</commentid>
    <comment_count>42</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-29 08:43:50 -0800</bug_when>
    <thetext>We probably need to do the same two things we did for V8, right?

1) Integrate MutationObserver with GC opaque roots so that its wrapper has the right lifetime.
2) Store the callback object on the MutationObserver wrapper using a PrivateName.

It looks like part (1) is done in bug 102744 and WebCore can use PrivateName as of bug 102546.  That means we just need to move the storage of the callback to the wrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779035</commentid>
    <comment_count>43</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-29 08:44:07 -0800</bug_when>
    <thetext>I can take a look at this today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779563</commentid>
    <comment_count>44</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-29 16:07:10 -0800</bug_when>
    <thetext>&gt; I can take a look at this today.

I&apos;ve decided not to work on this bug today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801507</commentid>
    <comment_count>45</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-07 11:55:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/12967528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801781</commentid>
    <comment_count>46</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-07 16:08:52 -0800</bug_when>
    <thetext>Note that in http://trac.webkit.org/changeset/138841 Chromium stopped using the IDL file to generate V8MutationCallback, since its implementation had diverged almost completely from other callbacks. I suspect that a similar change on the JSC side would be the easiest way forward. The two bits of behavior are:

1. JSMutationCallback should only hold a weak handle to the callback function.
2. A PrivateName should be added on the JSMutationObserver wrapper to the callback function.

(1) is problematic while JSMutationCallback is generated from an IDL, since a new weak version of JSCallbackData would be required. I suspect (though I&apos;m not positive) that a completely custom version won&apos;t need the same thread-handling code in JSCallbackData, since mutation observers are only used on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802648</commentid>
    <comment_count>47</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-08 14:27:41 -0800</bug_when>
    <thetext>Geoffrey, is anyone more familiar with JSC than I or Elliott planning on fixing this? If not I&apos;m likely to give it another shot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818071</commentid>
    <comment_count>48</comment_count>
      <attachid>185055</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 13:59:53 -0800</bug_when>
    <thetext>Created attachment 185055
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818080</commentid>
    <comment_count>49</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 14:06:15 -0800</bug_when>
    <thetext>See WIP patch. The only things possibly wrong with it are

1) Lack of a test
2) Use of WeakHandleOwner to keep the callback alive. I believe this will result in it taking two GC cycles to free the callback. First cycle will be able to collect the MutationObserver wrapper, and the second will see the wrapper is gone and collect the callback. But perhaps this could be accomplished in one cycle using a PrivateName? I only hesitated on that since it&apos;s not commonly used in JSC bindings, but if it&apos;s a cleaner approach, adding it to JSMutationObserverCustom.cpp should be doable.

I&apos;d like feedback especially on (2), but also on the rest of the new stuff in JSMutationCallback (I&apos;ve reorganized how the callback works to store a DOMWrapperWorld instead of a JSDOMGlobalObject, for example).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818105</commentid>
    <comment_count>50</comment_count>
      <attachid>185063</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 14:28:39 -0800</bug_when>
    <thetext>Created attachment 185063
WIP: PrivateName alternative</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818109</commentid>
    <comment_count>51</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 14:30:07 -0800</bug_when>
    <thetext>The PrivateName implementation seems noticeably simpler, fwiw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818152</commentid>
    <comment_count>52</comment_count>
      <attachid>185063</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 15:00:41 -0800</bug_when>
    <thetext>Comment on attachment 185063
WIP: PrivateName alternative

The PrivateName approach looks fine.  One reason PrivateName might not be used much in the bindings is that it&apos;s a relatively new addition to JSC (or at least newly exposed to WebCore).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818158</commentid>
    <comment_count>53</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 15:04:17 -0800</bug_when>
    <thetext>Okay, so that leaves the test. ggaren referred to memory usage being exposed on internals, but I don&apos;t see that (nor do I see it listed here: http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree). What am I missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818159</commentid>
    <comment_count>54</comment_count>
      <attachid>185063</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-28 15:04:40 -0800</bug_when>
    <thetext>Comment on attachment 185063
WIP: PrivateName alternative

Attachment 185063 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16152812</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818178</commentid>
    <comment_count>55</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 15:19:12 -0800</bug_when>
    <thetext>I&apos;m not sure how to write a test for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818241</commentid>
    <comment_count>56</comment_count>
      <attachid>185095</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 16:24:32 -0800</bug_when>
    <thetext>Created attachment 185095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818295</commentid>
    <comment_count>57</comment_count>
      <attachid>185095</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 17:14:32 -0800</bug_when>
    <thetext>Comment on attachment 185095
Patch

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

This looks good provided it&apos;s safe to ref the DOMWrapperWorld.

&gt; Source/WebCore/bindings/js/JSMutationCallback.h:47
&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE { return ContextDestructionObserver::scriptExecutionContext(); }

I think you can do this with the &quot;using&quot; directive.

&gt; Source/WebCore/bindings/js/JSMutationCallback.h:53
&gt; +    RefPtr&lt;DOMWrapperWorld&gt; m_isolatedWorld;

Is it safe to ref the DOMWrapperWorld?  For example, does the DOMWrapperWorld keep the global object alive, which might keep the mutation observer instance alive, which keeps the JSMutationCallback alive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818298</commentid>
    <comment_count>58</comment_count>
      <attachid>185095</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-28 17:21:13 -0800</bug_when>
    <thetext>Comment on attachment 185095
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSMutationCallback.h:47
&gt;&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE { return ContextDestructionObserver::scriptExecutionContext(); }
&gt; 
&gt; I think you can do this with the &quot;using&quot; directive.

I think we had this same discussion with V8MutationCallback :). The compiler won&apos;t let me get away with just &quot;using&quot;; it won&apos;t recognize the &quot;using&quot; as an implementation of MutationCallback::scriptExecutionContext and complains that JSMutationCallback can&apos;t be instantiated.

&gt;&gt; Source/WebCore/bindings/js/JSMutationCallback.h:53
&gt;&gt; +    RefPtr&lt;DOMWrapperWorld&gt; m_isolatedWorld;
&gt; 
&gt; Is it safe to ref the DOMWrapperWorld?  For example, does the DOMWrapperWorld keep the global object alive, which might keep the mutation observer instance alive, which keeps the JSMutationCallback alive?

I can tell you that JSEventListener holds a RefPtr&lt;DOMWrapperWorld&gt; in what seems to be a similar situation, but I don&apos;t know enough of the details to be sure this isn&apos;t still a leak. ggaren&apos;s input would be useful here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818304</commentid>
    <comment_count>59</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 17:26:34 -0800</bug_when>
    <thetext>(In reply to comment #58)
&gt; (From update of attachment 185095 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185095&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/js/JSMutationCallback.h:47
&gt; &gt;&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE { return ContextDestructionObserver::scriptExecutionContext(); }
&gt; &gt; 
&gt; &gt; I think you can do this with the &quot;using&quot; directive.
&gt; 
&gt; I think we had this same discussion with V8MutationCallback :). The compiler won&apos;t let me get away with just &quot;using&quot;; it won&apos;t recognize the &quot;using&quot; as an implementation of MutationCallback::scriptExecutionContext and complains that JSMutationCallback can&apos;t be instantiated.

Probably.  :)

&gt; &gt;&gt; Source/WebCore/bindings/js/JSMutationCallback.h:53
&gt; &gt;&gt; +    RefPtr&lt;DOMWrapperWorld&gt; m_isolatedWorld;
&gt; &gt; 
&gt; &gt; Is it safe to ref the DOMWrapperWorld?  For example, does the DOMWrapperWorld keep the global object alive, which might keep the mutation observer instance alive, which keeps the JSMutationCallback alive?
&gt; 
&gt; I can tell you that JSEventListener holds a RefPtr&lt;DOMWrapperWorld&gt; in what seems to be a similar situation, but I don&apos;t know enough of the details to be sure this isn&apos;t still a leak. ggaren&apos;s input would be useful here.

Makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820380</commentid>
    <comment_count>60</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-30 11:56:02 -0800</bug_when>
    <thetext>LGTM.

RefPtr&lt;DOMWrapperWorld&gt; is OK because all references from DOMWrapperWorld to JS are weak / garbage collected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820407</commentid>
    <comment_count>61</comment_count>
      <attachid>185095</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-30 12:24:18 -0800</bug_when>
    <thetext>Comment on attachment 185095
Patch

Clearing flags on attachment: 185095

Committed r141296: &lt;http://trac.webkit.org/changeset/141296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820408</commentid>
    <comment_count>62</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-30 12:24:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161050</attachid>
            <date>2012-08-28 13:55:35 -0700</date>
            <delta_ts>2012-08-28 15:34:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93661-20120828135526.patch</filename>
            <type>text/plain</type>
            <size>54130</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUyM2ZiMDkxMDYzNWFh
MzMwNzA0ZjhlMTY1ZDY0NDBiZmVlYWU1ZC4uNDJjZGRlMzU4YTEyMWY0ODNmMTBiOWUyMzkzZWM3
ZGZlZTkyODQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEyLTA4LTI4ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJzIHNob3VsZCBub3QgY3JlYXRlIGNpcmN1bGFyLCBsZWFreSByZWZlcmVuY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzY2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBuZXcg
VjhXcmFwcGVyUmV0YWluZWRWYWx1ZSBhbmQgSlNXcmFwcGVyUmV0YWluZWRWYWx1ZSBiYXNlIGNs
YXNzZXMgZm9yIGltcGxlbWVudGluZworICAgICAgICBiaW5kaW5ncyB0aGF0IGhvbGQgcmVmZXJl
bmNlcyB0byBKUyB2YWx1ZXMgd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciBsZWFrcy4KKworICAg
ICAgICBUaGlzIGFsc28gZml4ZXMgdGhlIE11dGF0aW9uT2JzZXJ2ZXJzIHRvIG5vdCBoYXZlIHRo
ZXNlIGxlYWtzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFVzZUpTQy5jbWFrZToKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNw
cC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbkNhbGxi
YWNrOjpKU011dGF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbkNh
bGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2su
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSlNNdXRhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTTXV0YXRpb25PYnNlcnZl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChKU1dyYXBwZXJSZXRhaW5lZFZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTV3JhcHBlclJldGFpbmVkVmFsdWU6OkpTV3JhcHBlclJldGFp
bmVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNXcmFwcGVyUmV0YWluZWRWYWx1ZTo6fkpT
V3JhcHBlclJldGFpbmVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNXcmFwcGVyUmV0YWlu
ZWRWYWx1ZTo6cmV0YWluZWRCeSk6CisgICAgICAgIChXZWJDb3JlOjpKU1dyYXBwZXJSZXRhaW5l
ZFZhbHVlOjpzY3JpcHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1dyYXBwZXJSZXRhaW5l
ZFZhbHVlOjpyZWxlYXNlU2NyaXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q2Fs
bGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW52b2tlQ2FsbGJhY2spOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRkZW5SZWZlcmVuY2VOYW1lKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oOgorICAgICAgICAoVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpWOE11dGF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OE11dGF0aW9uQ2FsbGJhY2suaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uQ2FsbGJhY2suaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVjhNdXRhdGlvbkNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFdyYXBwZXJSZXRhaW5lZFZhbHVlLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChWOFdyYXBwZXJSZXRhaW5lZFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4V3JhcHBlclJldGFpbmVkVmFsdWU6OlY4V3JhcHBlclJldGFpbmVkVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXcmFwcGVyUmV0YWluZWRWYWx1ZTo6flY4V3JhcHBlclJldGFp
bmVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VjhXcmFwcGVyUmV0YWluZWRWYWx1ZTo6c2Ny
aXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VjhXcmFwcGVyUmV0YWluZWRWYWx1ZTo6cmVs
ZWFzZVNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V3JhcHBlclJldGFpbmVkVmFs
dWU6OmNyZWF0ZVByb3BlcnR5TmFtZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9u
T2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNh
bGxiYWNrLmg6CisgICAgICAgIChNdXRhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vTXV0
YXRpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25PYnNl
cnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0
YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25F
bmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKToKKyAg
ICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsOgorCiAyMDEyLTA4LTIwICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIE1vdmUgaGFuZGxlT3V0
T2ZNZW1vcnkoKSBmcm9tIFY4UHJveHkgdG8gVjhCaW5kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKaW5kZXggMjc2M2E0YjQ5NjQ4YTEwMGI2YWViNWQ3YmE5YTU4MmQxYTU3NDg1Mi4uODYx
Y2M1NDIxZjc3MTk4ZDIyOWY5MzUzM2YwOTllZDBiOWY2ZDBmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcApAQCAtMjUxLDcgKzI1MSw2IEBACiAjaW5jbHVkZSAiSlNNZXRhZGF0YS5jcHAi
CiAjaW5jbHVkZSAiSlNNZXRhZGF0YUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU01vdXNlRXZl
bnQuY3BwIgotI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNN
dXRhdGlvbkV2ZW50LmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2lu
Y2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggZmY3NmMzYWQwOGViOTFhNTBmZDMxZGViNzQzYWVkMmQ0NzRlOTc2MS4uNTI4YzU0MDZm
OGFlNWY1ODY5ZGM5NDhkYjRiNTZmNTlhNTU3NGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0yMzIsNyArMjMyLDYgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvZG9tL01lc3NhZ2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL01lc3NhZ2VQb3J0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAotICAgICQoV2ViQ29y
ZSkvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlv
bkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCAyYmM5ODc5N2YxN2U4NGFkMWQ3OGI4NTE5YmNlYmEzYWIxMzkzYTYz
Li45ZjZhNTA4M2FiNTJlYTliYWNhNGY4MDc3N2RlZDcyYWQxNDQ2ZTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUzNiw4ICs1MzYsNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25DYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlv
bkNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKQEAgLTEzMzUsNyArMTMz
Myw2IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL01lc3NhZ2VFdmVu
dC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL01lc3NhZ2VQb3J0LmlkbCBcCiAJJChXZWJDb3JlKS9k
b20vTW91c2VFdmVudC5pZGwgXAotCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRs
IFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20v
TXV0YXRpb25PYnNlcnZlci5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlk
bCBcCkBAIC0yMjkyLDcgKzIyODksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCkBAIC0yMzQyLDYgKzIzNDAsNyBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0
b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dyYXBwZXJSZXRhaW5lZFZh
bHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aFJlc3Vs
dEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYmY5NDM3MmJjNmVmMDc0NTEwYzBlY2Y0YWUw
MDllMWM5ZTM3OGY3NC4uYzYzYWM2MThkMWIyMTJiYTQzNzdlZDU5M2U0MTNiZGVmZWU3NTg2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0xNjIsNyArMTYyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgIGJpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNZXNz
YWdlUG9ydEN1c3RvbS5oIFwKICAgICAgYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwIFwKLSAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNw
cCBcCisgICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAgXAogICAgICBiaW5k
aW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMv
SlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcCBcCkBAIC0xMzEzLDYgKzEzMTMsNyBAQCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9q
cy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCiAgICAgYmluZGluZ3MvanMvSlNTdG9yYWdl
Q3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBcCisgICAg
YmluZGluZ3MvanMvSlNXcmFwcGVyUmV0YWluZWQuaCBcCiAgICAgYmluZGluZ3MvanMvSmF2YVNj
cmlwdENhbGxGcmFtZS5oIFwKICAgICBiaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIu
aCBcCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCmlu
ZGV4IGU5OWQyZWI2NWQyNzMwODE5MmU2ZTBmMmM5MDM2YTQ4ZGE1Y2UzMDYuLjk2Y2VjZTdlYmQ5
NTRhMzAxOTBmNTEwNzVhNzFlMDNjMzQ4MDY3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1VzZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTExMSw3
ICsxMTEsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAot
ICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKyAgICBiaW5kaW5n
cy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKaW5kZXggMjlk
N2U1ODcyOGRiOTA3NGQyMjJiYTUwY2JjYjA5OGE1YjBjN2JmMi4uYjgyODQ3NzA1ZWMxY2Y5NDBm
MTFjOWUxM2UwM2IxNWRiMGJkNWE1OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlVjgu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKQEAgLTEzMCw3ICsxMzAsNyBA
QCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBv
cnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVl
Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwCisgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFjay5jcHAKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5
NTJiODAwMWRjOTAzNDQwZmUzOTgxNDcwNmI0Nzk1MzdmNjM5Y2JkLi5mMTRmOThlYzY5ZWJiMTQ5
YTU5ZmNjNGU2ZTQyZmVhNjMwYzBlMWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC05ODcsNyArOTg3
LDYgQEAKICAgICAgICAgICAgICdkb20vTWVzc2FnZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAn
ZG9tL01lc3NhZ2VQb3J0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuaWRsJywK
LSAgICAgICAgICAgICdkb20vTXV0YXRpb25DYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2Rv
bS9NdXRhdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXIu
aWRsJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25SZWNvcmQuaWRsJywKQEAgLTIwNTksNyAr
MjA1OCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywK
LSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywK
KyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAnLApAQCAtMjEwNyw2ICsyMTA2LDcgQEAK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNXcmFwcGVyUmV0YWluZWQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCcsCkBAIC0yMTg2LDYgKzIxODYsOCBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0lzb2xhdGVkV29ybGQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0ph
dmFTY3JpcHRDYWxsRnJhbWUuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhNdXRhdGlv
bkNhbGxiYWNrLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxi
YWNrLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L05QT2JqZWN0V3JhcHBlci5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L05QT2JqZWN0V3JhcHBlci5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcCcsCkBAIC0yMzAwLDYgKzIzMDIsNyBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5o
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdyYXBwZXJSZXRhaW5lZFZhbHVlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCcs
CkBAIC0yMzcyLDcgKzIzNzUsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAn
LApAQCAtNzY0OCw4ICs3NjUwLDYgQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWV0YWRhdGFDYWxsYmFjay5oJywKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5jcHAnLAog
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3Vz
ZUV2ZW50LmgnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZl
bnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTXV0YXRpb25FdmVudC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMzM2MTli
NTM1Zjc0MTg1ZTdkMDQ4YTc4NmVlOWRjOThhZDkzMDQ5ZC4uZGMyZDhiZDM2NTE1MjlkMDM4MTA2
MjQ0OTYzOWU1OThhYzcyODUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAKICNpbmNsdWRlICJK
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIgotI2luY2x1ZGUg
IkpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVDdXN0b20uY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTI0YmQ5YzQzMjBkYjVlOTNmNzBjNjE1ZGIyY2FiNWQ4NTM3MmQ5NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25D
YWxsYmFjay5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2su
aCIKKworI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25P
YnNlcnZlci5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKKyNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKwordXNp
bmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU011dGF0aW9uQ2Fs
bGJhY2s6OkpTTXV0YXRpb25DYWxsYmFjayhKU09iamVjdCogb2JzZXJ2ZXIsIEpTT2JqZWN0KiBj
YWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTUNhbGxiYWNrKGdsb2JhbE9iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgSlNXcmFwcGVyUmV0YWluZWRWYWx1ZShj
YWxsYmFjaykKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKK3sKK30KKworYm9v
bCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25z
LCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK3sKKyAgICBpZiAoIWNhbkludm9rZUNhbGxi
YWNrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgUmVmUHRyPEpTTXV0YXRpb25DYWxs
YmFjaz4gcHJvdGVjdCh0aGlzKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93
QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOworICAgIEpTQ2FsbGJhY2tEYXRhIGRhdGEoc2Ny
aXB0VmFsdWUoKSwgbV9nbG9iYWxPYmplY3QuZ2V0KCkpOworCisgICAgRXhlY1N0YXRlKiBleGVj
ID0gZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIG11dGF0aW9uTGlzdDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11dGF0
aW9ucy0+c2l6ZSgpOyArK2kpCisgICAgICAgIG11dGF0aW9uTGlzdC5hcHBlbmQodG9KUyhleGVj
LCBkYXRhLT5nbG9iYWxPYmplY3QoKSwgbXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOworCisgICAg
SlNWYWx1ZSBqc09ic2VydmVyID0gdG9KUyhleGVjLCBkYXRhLT5nbG9iYWxPYmplY3QoKSwgb2Jz
ZXJ2ZXIpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVu
ZChjb25zdHJ1Y3RBcnJheShleGVjLCBkYXRhLT5nbG9iYWxPYmplY3QoKSwgbXV0YXRpb25MaXN0
KSk7CisgICAgYXJncy5hcHBlbmQoanNPYnNlcnZlcik7CisKKyAgICBib29sIHJhaXNlZEV4Y2Vw
dGlvbiA9IGZhbHNlOworICAgIGRhdGEtPmludm9rZUNhbGxiYWNrKGpzT2JzZXJ2ZXIsIGFyZ3Ms
ICZyYWlzZWRFeGNlcHRpb24pOworICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJW
RVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41N2U1YzYwYjIyMjkzNTA3OTVmYzY4NjFkNWJlZmEwZTRhYTgzMTZmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNh
bGxiYWNrLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNNdXRhdGlvbkNhbGxiYWNrX2gKKyNk
ZWZpbmUgSlNNdXRhdGlvbkNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTQ2FsbGJh
Y2tEYXRhLmgiCisjaW5jbHVkZSAiSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oIgorI2luY2x1ZGUg
Ik11dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCit1c2luZyBu
YW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTTXV0YXRpb25D
YWxsYmFjayA6IHB1YmxpYyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJh
Y2ssIHB1YmxpYyBKU1dyYXBwZXJSZXRhaW5lZFZhbHVlPE11dGF0aW9uT2JzZXJ2ZXI+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShK
U09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTTXV0YXRpb25DYWxsYmFjayhjYWxsYmFj
aywgZ2xvYmFsT2JqZWN0KSk7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGNhbGwoTXV0YXRp
b25SZWNvcmRBcnJheSosIE11dGF0aW9uT2JzZXJ2ZXIqKTsKKworcHJpdmF0ZToKKyAgICBKU011
dGF0aW9uQ2FsbGJhY2soSlNPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCopOworCisgICAgSlND
OjpTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0
aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRh
dGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNk
ZTdiNzk0NmFlMWM2ZGNmOTc1MzhjN2IyYWQzNTk2NGRkMDQ4Ni4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0K
LSNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIkpTRE9NV2luZG93
QmFzZS5oIgotI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgIkpTTXV0
YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5j
bHVkZSA8cnVudGltZS9KU0xvY2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1ib29sIEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0
YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikK
LXsKLSAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgUmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQotICAgIEpT
TG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwot
Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhl
YygpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbXV0YXRpb25MaXN0OwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbXV0YXRpb25zLT5zaXplKCk7ICsraSkKLSAgICAgICAgbXV0YXRp
b25MaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCksIG11dGF0aW9u
cy0+YXQoaSkuZ2V0KCkpKTsKLQotICAgIEpTVmFsdWUganNPYnNlcnZlciA9IHRvSlMoZXhlYywg
bV9kYXRhLT5nbG9iYWxPYmplY3QoKSwgb2JzZXJ2ZXIpOwotCi0gICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RBcnJheShleGVjLCBtX2RhdGEt
Pmdsb2JhbE9iamVjdCgpLCBtdXRhdGlvbkxpc3QpKTsKLSAgICBhcmdzLmFwcGVuZChqc09ic2Vy
dmVyKTsKLQotICAgIGJvb2wgcmFpc2VkRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgbV9kYXRhLT5p
bnZva2VDYWxsYmFjayhqc09ic2VydmVyLCBhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsKLSAgICBy
ZXR1cm4gIXJhaXNlZEV4Y2VwdGlvbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IGFi
NTU2MGQ4MGNjOTdjNDMwMWM3ZjUwYWUxNDA4NDE3ZmUwY2IwYjIuLmZkZjY0ZTNlMjJlNzQzMWEx
YzA2NDY5MWRmZTU0MTM1OWUxNDE0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtNTUsNyArNTUsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RKU011dGF0aW9uTwogCiAgICAgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3Ry
dWN0b3IqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0
b3IqPihleGVjLT5jYWxsZWUoKSk7CiAgICAgUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxi
YWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBqc0NvbnN0cnVjdG9yLT5n
bG9iYWxPYmplY3QoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pT
KGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBNdXRhdGlvbk9ic2VydmVyOjpj
cmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKSkpKTsKKyAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZl
cj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgp
LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICBvYnNlcnZlci0+cmV0YWluZWRCeShleGVjLCBvYnNlcnZlcik7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpLCBvYnNlcnZlci5yZWxlYXNlKCkpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV3JhcHBlclJl
dGFpbmVkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV3JhcHBlclJldGFp
bmVkVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTA3ZmVhNGU4MmM0YWMyNTQwMTliYzhjMzU4OTY0ZjU3
N2E5MjBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
cmFwcGVyUmV0YWluZWRWYWx1ZS5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTV3JhcHBlclJl
dGFpbmVkVmFsdWVfaAorI2RlZmluZSBKU1dyYXBwZXJSZXRhaW5lZFZhbHVlX2gKKworI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBKU1dyYXBwZXJSZXRhaW5l
ZFZhbHVlIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKK3B1YmxpYzoKKyAgICBKU1dy
YXBwZXJSZXRhaW5lZFZhbHVlKEpTQzo6SlNPYmplY3QqIHZhbHVlKQorICAgICAgICA6IG1fb3du
ZXIoMCkKKyAgICAgICAgLCBtX3ZhbHVlKEpTQzo6UGFzc1dlYWs8SlNPYmplY3Q+KHZhbHVlLCB0
aGlzKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+SlNXcmFwcGVyUmV0YWluZWRWYWx1
ZSgpCisgICAgeworICAgICAgICByZWxlYXNlU2NyaXB0VmFsdWUoKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImKSBPVkVSUklERQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlICYmIGdldENhY2hlZFdyYXBwZXIobV93cmFwcGVyV29ybGQuZ2V0KCks
IG1fb3duZXIpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIHJlbGVhc2VT
Y3JpcHRWYWx1ZSgpOworICAgIH0KKworICAgIHZvaWQgcmV0YWluZWRCeShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgUGFzc1JlZlB0cjxUPiBvd25lcikKKyAgICB7CisgICAgICAgIEFTU0VSVChvd25l
cik7CisgICAgICAgIG1fd3JhcHBlcldvcmxkID0gY3VycmVudFdvcmxkKGV4ZWMpOworICAgICAg
ICBtX293bmVyID0gb3duZXIuZ2V0KCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgSlNDOjpK
U09iamVjdCogc2NyaXB0VmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmFs
dWUuZ2V0KCk7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlU2NyaXB0VmFsdWUoKQorICAgIHsK
KyAgICAgICAgbV93cmFwcGVyV29ybGQgPSAwOworICAgICAgICBtX3ZhbHVlLmNsZWFyKCk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFQqIG1fb3duZXI7CisgICAgSlNDOjpXZWFrPEpTT2JqZWN0
PiBtX3ZhbHVlOworICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1fd3JhcHBlcldvcmxkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSlNXcmFwcGVyUmV0YWlu
ZWRWYWx1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxi
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwCmluZGV4
IDU0ZjU3MmE1NWYwOTI2NTliNjlmMTJkNDhlYjJmNDI5ZmFiYmYwMTEuLjJlMjUwNjExNDEzZGY3
YzM2YTViMGQ2NjliMDUxMjE1YmYyNmE4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4Q2FsbGJhY2suY3BwCkBAIC0zNiwxOSArMzYsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1ib29sIGludm9rZUNhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxi
YWNrLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJh
Y2tSZXR1cm5WYWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFj
aywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNr
UmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpCiB7CiAgICAgcmV0dXJuIGludm9rZUNhbGxiYWNrKGNhbGxiYWNrLCB2ODo6Q29udGV4dDo6
R2V0Q3VycmVudCgpLT5HbG9iYWwoKSwgYXJnYywgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiB9CiAKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhp
c09iamVjdCwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNh
bGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpCitib29sIGludm9rZUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY2Fs
bGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhpc09iamVjdCwgaW50IGFyZ2MsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7CiAgICAgdjg6OlRy
eUNhdGNoIGV4Y2VwdGlvbkNhdGNoZXI7CiAgICAgZXhjZXB0aW9uQ2F0Y2hlci5TZXRWZXJib3Nl
KHRydWUpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2FsbGJhY2tGdW5jdGlvbjsK
ICAgICBpZiAoY2FsbGJhY2stPklzRnVuY3Rpb24oKSkgewotICAgICAgICBjYWxsYmFja0Z1bmN0
aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46Ok5ldyh2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb24+OjpDYXN0KGNhbGxiYWNrKSk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24gPSB2ODo6
TG9jYWw8djg6OkZ1bmN0aW9uPjo6TmV3KHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChj
YWxsYmFjaykpOwogICAgIH0gZWxzZSBpZiAoY2FsbGJhY2stPklzT2JqZWN0KCkpIHsKICAgICAg
ICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gaGFuZGxlRXZlbnRGdW5jdGlvbiA9IGNhbGxiYWNrLT5H
ZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJoYW5kbGVFdmVudCIpKTsKICAgICAgICAgaWYgKGhh
bmRsZUV2ZW50RnVuY3Rpb24tPklzRnVuY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4Q2FsbGJhY2suaAppbmRleCA5MjUzNjQ3ZmM0N2E0ZWRkYWI1YWYyNTUzZWZhODgwZWFkOWUx
NWI0Li5lMmM0OTcyOWIwNWUzM2IyNzdmZjAzMjk3ZTc5YTk5YzNjMDk5ODZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhDYWxsYmFjay5oCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotYm9vbCBpbnZv
a2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2Ms
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhpc09i
amVjdCwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxi
YWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKK2Jvb2wgaW52b2tlQ2Fs
bGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBjYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB0aGlzT2JqZWN0LCBpbnQgYXJn
Yywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1
ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlO
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1l
LmNwcAppbmRleCBmZGRkYWZiYWUxOWE0ZWE3NmUyMDkzMDU2MTljNWQ5OGE0ZWJjNDgyLi44YjQy
N2EwMDM2ODU0NDhlZGRjNGVhN2ZhODBlZGJhZDQ1MGE3MDRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCkBAIC01NSwxMyAr
NTUsMTUgQEAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBWOEhpZGRlblByb3BlcnR5TmFtZTo6bmFt
ZSgpIFwKIAogVjhfSElEREVOX1BST1BFUlRJRVMoVjhfREVGSU5FX0hJRERFTl9QUk9QRVJUWSk7
CiAKLXY4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJl
ZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtZSkKK3Y4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhI
aWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtZSwg
Ym9vbCBzeW1ib2wpCiB7CiAgICAgVmVjdG9yPGNoYXIsIDY0PiBwcmVmaXhlZE5hbWU7CiAgICAg
cHJlZml4ZWROYW1lLmFwcGVuZChWOF9ISURERU5fUFJPUEVSVFlfUFJFRklYLCBzaXplb2YoVjhf
SElEREVOX1BST1BFUlRZX1BSRUZJWCkgLSAxKTsKICAgICBBU1NFUlQobmFtZSAmJiBzdHJsZW4o
bmFtZSkpOwogICAgIHByZWZpeGVkTmFtZS5hcHBlbmQobmFtZSwgc3RybGVuKG5hbWUpKTsKLSAg
ICByZXR1cm4gdjg6OlN0cmluZzo6TmV3U3ltYm9sKHByZWZpeGVkTmFtZS5kYXRhKCksIHN0YXRp
Y19jYXN0PGludD4ocHJlZml4ZWROYW1lLnNpemUoKSkpOworICAgIGlmIChzeW1ib2wpCisgICAg
ICAgIHJldHVybiB2ODo6U3RyaW5nOjpOZXdTeW1ib2wocHJlZml4ZWROYW1lLmRhdGEoKSwgc3Rh
dGljX2Nhc3Q8aW50PihwcmVmaXhlZE5hbWUuc2l6ZSgpKSk7CisgICAgcmV0dXJuIHY4OjpTdHJp
bmc6Ok5ldyhwcmVmaXhlZE5hbWUuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHByZWZpeGVkTmFt
ZS5zaXplKCkpKTsKIH0KIAogdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWU6OmNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaAppbmRleCA5ZGRmYTMwZjU3
ZjI4NzU2NTIwMTQ5MDQxNDBmZWEzYjJmMmZmNjBiLi43ZmVmZjBhOGZhMjQ1M2Q5MTYwMjBiMDE1
ZjZkOWZhYzllNTZlMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
SGlkZGVuUHJvcGVydHlOYW1lLmgKQEAgLTU3LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBWOF9ISURERU5fUFJPUEVSVElFUyhWOF9ERUNMQVJFX1BST1BFUlRZKTsKICN1
bmRlZiBWOF9ERUNMQVJFX1BST1BFUlRZCiAKLSAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlN0cmluZz4gaGlkZGVuUmVmZXJlbmNlTmFtZShjb25zdCBjaGFyKiBuYW1lKTsKKyAgICAgICAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gaGlkZGVuUmVmZXJlbmNlTmFtZShjb25zdCBj
aGFyKiBuYW1lLCBib29sIHN5bWJvbCA9IHRydWUpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
c3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGNyZWF0ZVN0cmluZyhjb25zdCBjaGFy
KiBrZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlv
bkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxs
YmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY5Yzc2YTIyOTFjYzM5YTIyYTYwNjdiZjVlZDMyNzU3MmJh
YjZkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0
YXRpb25DYWxsYmFjay5jcHAKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJWOE11dGF0
aW9uQ2FsbGJhY2suaCIKKworI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNp
bmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOENhbGxiYWNrLmgiCisjaW5jbHVkZSAi
VjhNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiVjhNdXRhdGlvblJlY29yZC5oIgorI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWOE11dGF0aW9uQ2FsbGJh
Y2s6OlY4TXV0YXRpb25DYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9ic2VydmVyLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQorICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soY29udGV4dCkKKyAgICAsIFY4V3JhcHBl
clJldGFpbmVkVmFsdWUob2JzZXJ2ZXIsIGNhbGxiYWNrKQorICAgICwgbV93b3JsZENvbnRleHQo
VXNlQ3VycmVudFdvcmxkKQoreworfQorCitib29sIFY4TXV0YXRpb25DYWxsYmFjazo6Y2FsbChN
dXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVy
KQoreworICAgIEFTU0VSVChtdXRhdGlvbnMpOworICAgIGlmICghbXV0YXRpb25zKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisKKyAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0KTsKKyAgICBpZiAodjhDb250ZXh0LklzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2Nv
cGUodjhDb250ZXh0KTsKKworICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IG11dGF0aW9uc0FycmF5
ID0gdjg6OkFycmF5OjpOZXcobXV0YXRpb25zLT5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbXV0YXRpb25zLT5zaXplKCk7ICsraSkKKyAgICAgICAgbXV0YXRpb25zQXJyYXkt
PlNldCh2OEludGVnZXIoaSksIHRvVjgobXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOworCisgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZlcik7Cisg
ICAgaWYgKG9ic2VydmVySGFuZGxlLklzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWlzU2NyaXB0
Q29udHJvbGxlclRlcm1pbmF0aW5nKCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIW9ic2VydmVySGFuZGxlLT5Jc09iamVjdCgp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2
W10gPSB7CisgICAgICAgIG11dGF0aW9uc0FycmF5LAorICAgICAgICBvYnNlcnZlckhhbmRsZQor
ICAgIH07CisKKyAgICBib29sIGNhbGxiYWNrUmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICByZXR1
cm4gIWludm9rZUNhbGxiYWNrKHNjcmlwdFZhbHVlKCksIG9ic2VydmVySGFuZGxlLT5Ub09iamVj
dCgpLCAyLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVU
QVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhNdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0
aW9uQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmZiOWNmNzBmODY1OGQxNGEyYjY4MDBjMzNiNzVk
MDdjZTJmNzJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhNdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTVVUQVRJT05f
T0JTRVJWRVJTKQorCisjaWZuZGVmIFY4TXV0YXRpb25DYWxsYmFja19oCisjZGVmaW5lIFY4TXV0
YXRpb25DYWxsYmFja19oCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1
ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOFdyYXBwZXJSZXRhaW5lZFZhbHVl
LmgiCisjaW5jbHVkZSAiV29ybGRDb250ZXh0SGFuZGxlLmgiCisjaW5jbHVkZSA8djguaD4KKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIFY4TXV0YXRpb25DYWxsYmFjayA6IHB1Ymxp
YyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2ssIHB1YmxpYyBWOFdy
YXBwZXJSZXRhaW5lZFZhbHVlPE11dGF0aW9uT2JzZXJ2ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxWOE11dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IG9ic2VydmVyLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBWOE11dGF0aW9uQ2FsbGJhY2sob2JzZXJ2ZXIsIGNhbGxiYWNrLCBjb250ZXh0KSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCBib29sIGNhbGwoTXV0YXRpb25SZWNvcmRBcnJheSosIE11dGF0
aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBWOE11dGF0aW9uQ2FsbGJh
Y2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0Piwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOworICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4
dDsKK307CisKK30KKworI2VuZGlmIC8vIFY4TXV0YXRpb25DYWxsYmFja19oCisKKyNlbmRpZiAv
LyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhXcmFwcGVyUmV0YWluZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhXcmFwcGVyUmV0YWluZWRWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNTg1NjZmNTBl
NmQ1N2RhMDVhZmZhYzgyZTgzYWQ4NDZlNjMzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFdyYXBwZXJSZXRhaW5lZFZhbHVlLmgKQEAgLTAsMCArMSw5
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVjhXcmFwcGVyUmV0YWluZWRWYWx1ZV9oCisjZGVmaW5lIFY4V3JhcHBlclJl
dGFpbmVkVmFsdWVfaAorCisjaW5jbHVkZSAiT3duSGFuZGxlLmgiCisjaW5jbHVkZSAiVjhIaWRk
ZW5Qcm9wZXJ0eU5hbWUuaCIKKyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgVjhXcmFwcGVyUmV0YWluZWRWYWx1ZSB7CitwdWJsaWM6
CisgICAgVjhXcmFwcGVyUmV0YWluZWRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXIsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdmFsdWUpCisgICAgICAgIDogbV93cmFwcGVyKHdy
YXBwZXIpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKKyAgICAgICAgLCBtX3Byb3BlcnR5TmFt
ZShjcmVhdGVQcm9wZXJ0eU5hbWUoKSkKKyAgICB7CisgICAgICAgIEFTU0VSVCghd3JhcHBlci5J
c0VtcHR5KCkpOworICAgICAgICBtX3ZhbHVlLm1ha2VXZWFrKCk7CisgICAgICAgIG1fd3JhcHBl
ci5tYWtlV2VhaygpOworICAgICAgICB3cmFwcGVyLT5TZXRIaWRkZW5WYWx1ZShtX3Byb3BlcnR5
TmFtZSwgdmFsdWUpOworICAgIH0KKworICAgIHZpcnR1YWwgflY4V3JhcHBlclJldGFpbmVkVmFs
dWUoKQorICAgIHsKKyAgICAgICAgcmVsZWFzZVNjcmlwdFZhbHVlKCk7CisgICAgfQorCitwcm90
ZWN0ZWQ6CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBzY3JpcHRWYWx1ZSgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZS5nZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHJl
bGVhc2VTY3JpcHRWYWx1ZSgpCisgICAgeworICAgICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxl
U2NvcGU7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IG1fd3JhcHBl
ci5nZXQoKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIHdy
YXBwZXItPkRlbGV0ZUhpZGRlblZhbHVlKG1fcHJvcGVydHlOYW1lKTsKKyAgICAgICAgbV93cmFw
cGVyLmNsZWFyKCk7CisgICAgICAgIG1fdmFsdWUuY2xlYXIoKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGNyZWF0ZVByb3BlcnR5TmFt
ZSgpCisgICAgeworICAgICAgICBzdGF0aWMgZG91YmxlIG5leHRJZCA9IDA7CisgICAgICAgIHY4
OjpIYW5kbGVTY29wZSBzY29wZTsKKyAgICAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVy
OworICAgICAgICByZXR1cm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz46Ok5ldyhWOEhpZGRl
blByb3BlcnR5TmFtZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShudW1iZXJUb1N0cmluZyhuZXh0SWQr
KywgYnVmZmVyKSwgZmFsc2UpKTsKKyAgICB9CisKKyAgICBPd25IYW5kbGU8djg6Ok9iamVjdD4g
bV93cmFwcGVyOworICAgIE93bkhhbmRsZTx2ODo6T2JqZWN0PiBtX3ZhbHVlOworICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1fcHJvcGVydHlOYW1lOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVjhXcmFwcGVyUmV0YWluZWRWYWx1ZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9u
Q2FsbGJhY2tDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjMwOTVk
NjNmNDRmZWY0OTBkN2Y2ZTViOTI1Nzg3NWIwNmRlYTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpCi0KLSNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRl
ICJWOENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVk
ZSAiVjhNdXRhdGlvblJlY29yZC5oIgotI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1ib29sIFY4TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNv
cmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBB
U1NFUlQobXV0YXRpb25zKTsKLSAgICBpZiAoIW11dGF0aW9ucykKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotCi0gICAgdjg6OkhhbmRsZTx2
ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCBtX3dvcmxkQ29udGV4dCk7Ci0gICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4
dCk7Ci0KLSAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBtdXRhdGlvbnNBcnJheSA9IHY4OjpBcnJh
eTo6TmV3KG11dGF0aW9ucy0+c2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11
dGF0aW9ucy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG11dGF0aW9uc0FycmF5LT5TZXQodjhJbnRl
Z2VyKGkpLCB0b1Y4KG11dGF0aW9ucy0+YXQoaSkuZ2V0KCkpKTsKLQotICAgIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBvYnNlcnZlckhhbmRsZSA9IHRvVjgob2JzZXJ2ZXIpOwotICAgIGlmIChvYnNl
cnZlckhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJU
ZXJtaW5hdGluZygpKQotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotCi0gICAgaWYgKCFvYnNlcnZlckhhbmRsZS0+SXNPYmplY3QoKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewotICAg
ICAgICBtdXRhdGlvbnNBcnJheSwKLSAgICAgICAgb2JzZXJ2ZXJIYW5kbGUKLSAgICB9OwotCi0g
ICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgcmV0dXJuICFpbnZva2VD
YWxsYmFjayhtX2NhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KG9ic2VydmVy
SGFuZGxlKSwgMiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggN2M5
ZTUyNTBhYmY2ZTJiMzI1NmRiMDU3MmUwNmQzOWZmN2EzNTFhYy4uNWNmOGE3YTExYzdjMWE1OTBk
ZmM0MTYwZmJiYjFhZDA2YWQ4MDVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAg
LTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTVdy
YXBwZXIuaCIKICNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFBy
b3h5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNjUsMTIgKzY0LDEyIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0aW9uT2JzZXJ2
ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKCFjb250
ZXh0KQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihSZWZlcmVuY2VFcnJvciwgIk11dGF0aW9u
T2JzZXJ2ZXIgY29uc3RydWN0b3IncyBhc3NvY2lhdGVkIGZyYW1lIHVuYXZhaWxhYmxlIiwgYXJn
cy5HZXRJc29sYXRlKCkpOwogCi0gICAgUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNr
ID0gVjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUoYXJnLCBjb250ZXh0KTsKLSAgICBSZWZQdHI8
TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2Fs
bGJhY2sucmVsZWFzZSgpKTsKLQogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9
IGFyZ3MuSG9sZGVyKCk7CisgICAgUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0g
VjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUod3JhcHBlciwgYXJnLT5Ub09iamVjdCgpLCBjb250
ZXh0KTsKKyAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9i
c2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpLCBjb250ZXh0KTsKKwogICAgIFY4RE9N
V3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgb2JzZXJ2ZXIuZ2V0KCkpOwot
ICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9ic2VydmVyLnJlbGVh
c2UoKSwgd3JhcHBlcik7CisgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JBY3RpdmVE
T01PYmplY3Qob2JzZXJ2ZXIucmVsZWFzZSgpLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBl
cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKaW5kZXggMTE5MTk3YWJl
MzRiMWRhOTA0ZDQyMmJiZjhlMGYxZjc3ZTc3NmRmMi4uZmE0MTA0ZDQ3NmFhNzc4MjUxNWVkYWUx
YzhkN2U2MTZjNDY4MjQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCkBA
IC00OCw3ICs0OCw3IEBAIGNsYXNzIE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNdXRhdGlvbkNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TXV0YXRpb25DYWxs
YmFjaygpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3Jk
QXJyYXkqLCBNdXRhdGlvbk9ic2VydmVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjYWxsKE11
dGF0aW9uUmVjb3JkQXJyYXkqLCBNdXRhdGlvbk9ic2VydmVyKikgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYWVjZDliZTllNDFkZTRmMzJlNDZmOWQwNWIwZWJmMmNlNDg1MGU2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbkNhbGxiYWNrLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1tb2R1
bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05f
T0JTRVJWRVJTLAotICAgICAgICBDYWxsYmFjawotICAgIF0gTXV0YXRpb25DYWxsYmFjayB7Ci0g
ICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJh
eSBtdXRhdGlvbnMsIGluIE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwotICAgIH07Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggYTQwZDUwN2ZlNzAwM2Ew
MjRjYWU2NGM4Y2ViZjhmOGIzNWUxZTM1YS4uYzQzMDgxMDUzNmU1ZDcyNzRkZmU2NTViYzlhZjlh
Y2Q1MDRhMjQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAt
NTcsMTQgKzU3LDE3IEBAIHN0cnVjdCBNdXRhdGlvbk9ic2VydmVyOjpPYnNlcnZlckxlc3NUaGFu
IHsKICAgICB9CiB9OwogCi1QYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IE11dGF0aW9uT2Jz
ZXJ2ZXI6OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQorUGFz
c1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1Jl
ZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykpOworICAgIFJlZlB0cjxNdXRhdGlv
bk9ic2VydmVyPiBvYnNlcnZlciA9IGFkb3B0UmVmKG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxi
YWNrLCBjb250ZXh0KSk7CisgICAgb2JzZXJ2ZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBvYnNlcnZlci5yZWxlYXNlKCk7CiB9CiAKLU11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9u
T2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKLSAgICA6IG1f
Y2FsbGJhY2soY2FsbGJhY2spCitNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvbk9ic2VydmVyKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICAs
IG1fY2FsbGJhY2soY2FsbGJhY2spCiAgICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlvcml0
eSsrKQogewogfQpAQCAtMTQwLDEyICsxNDMsMTQgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpk
aXNjb25uZWN0KCkKIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbikKIHsKICAgICBBU1NFUlQo
IW1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhyZWdpc3RyYXRpb24pKTsKKyAgICBzZXRQZW5kaW5n
QWN0aXZpdHkodGhpcyk7CiAgICAgbV9yZWdpc3RyYXRpb25zLmFkZChyZWdpc3RyYXRpb24pOwog
fQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQogewogICAgIEFTU0VSVChtX3JlZ2lzdHJh
dGlvbnMuY29udGFpbnMocmVnaXN0cmF0aW9uKSk7CisgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHko
dGhpcyk7CiAgICAgbV9yZWdpc3RyYXRpb25zLnJlbW92ZShyZWdpc3RyYXRpb24pOwogfQogCkBA
IC0xODgsNyArMTkzLDcgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKCkKICAgICBW
ZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHJlY29yZHM7CiAgICAgcmVjb3Jkcy5zd2Fw
KG1fcmVjb3Jkcyk7CiAKLSAgICBtX2NhbGxiYWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhp
cyk7CisgICAgbV9jYWxsYmFjay0+Y2FsbCgmcmVjb3JkcywgdGhpcyk7CiB9CiAKIHZvaWQgTXV0
YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaAppbmRleCBmYWRiMzc4ZDFlZmRlYmQxY2JjZTMyNDdlZDlmOWZiMTAzNzcz
NDAxLi5hNzM5MjZhNzEzNGQzOTFmZTA5M2IxYzgzYTU1MzhhZjUxZDE2YjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQ4LDEzICs0OSwxNCBAQCBjbGFzcyBNdXRhdGlvbkNh
bGxiYWNrOwogY2xhc3MgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjsKIGNsYXNzIE11dGF0
aW9uUmVjb3JkOwogY2xhc3MgTm9kZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAK
IHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIHR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRh
dGlvbk9ic2VydmVyT3B0aW9uczsKIHR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9uczsKIAotY2xhc3MgTXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZD
b3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxNdXRhdGlvbk9ic2VydmVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7
CiBwdWJsaWM6CiAgICAgZW51bSBNdXRhdGlvblR5cGUgewogICAgICAgICBDaGlsZExpc3QgPSAx
IDw8IDAsCkBAIC03NCwxMCArNzYsMTAgQEAgcHVibGljOgogICAgICAgICBDaGFyYWN0ZXJEYXRh
T2xkVmFsdWUgPSAxIDw8IDYsCiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0
aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRh
dGlvbkNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lk
IGRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKIAotICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CisgICAg
dmlydHVhbCB+TXV0YXRpb25PYnNlcnZlcigpOwogCiAgICAgdm9pZCBvYnNlcnZlKE5vZGUqLCBj
b25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFZlY3RvcjxSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+ID4gdGFrZVJlY29yZHMoKTsKQEAgLTkwLDcgKzkyLDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBzdHJ1Y3QgT2JzZXJ2ZXJMZXNzVGhhbjsKIAotICAgIGV4cGxpY2l0IE11
dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgZXhwbGlj
aXQgTXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CiAKICAgICBzdGF0aWMgYm9v
bCB2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCmluZGV4IDBhZTk5MmU2ZGE3NWU1MTU0M2Y3Nzk4Yjcx
NjA2NTk4ZDE3OWFjMjEuLjMxMjFmYWIzMThhZGFmMTFiYWQ0NGU3NjZlZWMwOWVkZGMxZGNlNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwKQEAgLTMwLDkgKzMwLDEw
IEBACiAKIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZhY2UgWworICAgICAgICBBY3RpdmVET01P
YmplY3QsCiAgICAgICAgIENvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSUywKICAgICAgICAg
Q3VzdG9tQ29uc3RydWN0b3IsCi0gICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xCisgICAg
ICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAogICAgIF0gTXV0YXRpb25PYnNlcnZlciB7CiAg
ICAgICAgIHZvaWQgb2JzZXJ2ZShpbiBOb2RlIHRhcmdldCwgaW4gRGljdGlvbmFyeSBvcHRpb25z
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161068</attachid>
            <date>2012-08-28 15:02:57 -0700</date>
            <delta_ts>2012-09-20 13:15:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93661-20120828150247.patch</filename>
            <type>text/plain</type>
            <size>69556</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUyM2ZiMDkxMDYzNWFh
MzMwNzA0ZjhlMTY1ZDY0NDBiZmVlYWU1ZC4uOTU1N2ZlYjMwNjM3MjY1N2Q2NjcxMDg1YjVkYTUx
NDVlNzE4OTY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTA4LTI4ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJzIHNob3VsZCBub3QgY3JlYXRlIGNpcmN1bGFyLCBsZWFreSByZWZlcmVuY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzY2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBuZXcg
VjhXcmFwcGVyUmV0YWluZWRWYWx1ZSBhbmQgSlNXcmFwcGVyUmV0YWluZWRWYWx1ZSBiYXNlIGNs
YXNzZXMgZm9yIGltcGxlbWVudGluZworICAgICAgICBiaW5kaW5ncyB0aGF0IGhvbGQgcmVmZXJl
bmNlcyB0byBKUyB2YWx1ZXMgd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciBsZWFrcy4KKworICAg
ICAgICBUaGlzIGFsc28gZml4ZXMgdGhlIE11dGF0aW9uT2JzZXJ2ZXJzIHRvIG5vdCBoYXZlIHRo
ZXNlIGxlYWtzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFVzZUpTQy5jbWFrZToKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6SlNNdXRhdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6Y2FsbCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKEpTTXV0YXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2Fs
bGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RKU011dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV3JhcHBlclJldGFpbmVkVmFsdWUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoSlNXcmFwcGVyUmV0YWluZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1dyYXBw
ZXJSZXRhaW5lZFZhbHVlOjpKU1dyYXBwZXJSZXRhaW5lZFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTV3JhcHBlclJldGFpbmVkVmFsdWU6On5KU1dyYXBwZXJSZXRhaW5lZFZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTV3JhcHBlclJldGFpbmVkVmFsdWU6OnJldGFpbmVkQnkpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNXcmFwcGVyUmV0YWluZWRWYWx1ZTo6c2NyaXB0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNXcmFwcGVyUmV0YWluZWRWYWx1ZTo6cmVsZWFzZVNjcmlwdFZhbHVl
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENhbGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENhbGxiYWNrLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEhpZGRlblByb3Bl
cnR5TmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhpZGRlblByb3BlcnR5TmFtZTo6aGlk
ZGVuUmVmZXJlbmNlTmFtZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuaDoKKyAgICAgICAgKFY4SGlkZGVuUHJvcGVydHlOYW1lKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxsYmFjazo6VjhN
dXRhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxsYmFjazo6
Y2FsbCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmguCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFY4TXV0YXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhX
cmFwcGVyUmV0YWluZWRWYWx1ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENhbGxiYWNrLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVjhXcmFw
cGVyUmV0YWluZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFdyYXBwZXJSZXRhaW5lZFZh
bHVlOjpWOFdyYXBwZXJSZXRhaW5lZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V3JhcHBl
clJldGFpbmVkVmFsdWU6On5WOFdyYXBwZXJSZXRhaW5lZFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V3JhcHBlclJldGFpbmVkVmFsdWU6OnNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V3JhcHBlclJldGFpbmVkVmFsdWU6OnJlbGVhc2VTY3JpcHRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOFdyYXBwZXJSZXRhaW5lZFZhbHVlOjpjcmVhdGVQcm9wZXJ0eU5hbWUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpjb25zdHJ1Y3RvckNhbGxi
YWNrKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5oOgorICAgICAgICAoTXV0YXRp
b25DYWxsYmFjayk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uRW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcik6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVy
LmlkbDoKKwogMjAxMi0wOC0yMCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW1Y4XSBNb3ZlIGhhbmRsZU91dE9mTWVtb3J5KCkgZnJvbSBWOFByb3h5IHRv
IFY4QmluZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDI3NjNhNGI0OTY0OGEx
MDBiNmFlYjVkN2JhOWE1ODJkMWE1NzQ4NTIuLjg2MWNjNTQyMWY3NzE5OGQyMjlmOTM1MzNmMDk5
ZWQwYjlmNmQwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI1MSw3ICsyNTEs
NiBAQAogI2luY2x1ZGUgIkpTTWV0YWRhdGEuY3BwIgogI2luY2x1ZGUgIkpTTWV0YWRhdGFDYWxs
YmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmNwcCIKLSNpbmNsdWRlICJKU011dGF0
aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25FdmVudC5jcHAiCiAjaW5jbHVk
ZSAiSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmNw
cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGZmNzZjM2FkMDhlYjkxYTUwZmQz
MWRlYjc0M2FlZDJkNDc0ZTk3NjEuLjUyOGM1NDA2ZjhhZTVmNTg2OWRjOTQ4ZGI0YjU2ZjU5YTU1
NzRkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjMyLDcgKzIzMiw2IEBA
IEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlUG9ydC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L01vdXNlRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlv
blJlY29yZC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMmJjOTg3OTdm
MTdlODRhZDFkNzhiODUxOWJjZWJhM2FiMTM5M2E2My4uOWY2YTUwODNhYjUyZWE5YmFjYTRmODA3
NzdkZWQ3MmFkMTQ0NmU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01MzYs
OCArNTM2LDYgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTWljcm9EYXRhSXRlbVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNb3VzZUV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQu
aCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suY3BwIFwKLQlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNdXRhdGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlv
bk9ic2VydmVyLmNwcCBcCkBAIC0xMzM1LDcgKzEzMzMsNiBAQCBkb21fYmluZGluZ19pZGxzICs9
IFwKIAkkKFdlYkNvcmUpL2RvbS9NZXNzYWdlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9N
ZXNzYWdlUG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLQkkKFdl
YkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0YXRp
b25FdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKIAkk
KFdlYkNvcmUpL2RvbS9NdXRhdGlvblJlY29yZC5pZGwgXApAQCAtMjI5Miw3ICsyMjg5LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
UG9ydEN1c3RvbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0
YXRpb25DYWxsYmFjay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZU1hcEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAgXApAQCAtMjM0Miw2ICsyMzQwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmlu
ZGV4IGJmOTQzNzJiYzZlZjA3NDUxMGMwZWNmNGFlMDA5ZTFjOWUzNzhmNzQuLmM2M2FjNjE4ZDFi
MjEyYmE0Mzc3ZWQ1OTNlNDEzYmRlZmVlNzU4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTYyLDcgKzE2
Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9t
LmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCiAgICAgIGJp
bmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCi0gICAgIGJpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAorICAgICBiaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2suY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBc
CiAgICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXApAQCAtMTMxMyw2ICsxMzEzLDcg
QEAgSEVBREVSUyArPSBcCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmggXAogICAgIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmggXAorICAgIGJpbmRpbmdzL2pzL0pTV3JhcHBlclJldGFp
bmVkLmggXAogICAgIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBcCiAgICAgYmlu
ZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmggXAogICAgIGJpbmRpbmdzL2pzL1NjaGVk
dWxlZEFjdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQppbmRleCBlOTlkMmViNjVkMjczMDgxOTJlNmUw
ZjJjOTAzNmE0OGRhNWNlMzA2Li45NmNlY2U3ZWJkOTU0YTMwMTkwZjUxMDc1YTcxZTAzYzM0ODA2
NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xMTEsNyArMTExLDcgQEAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9u
Q2FsbGJhY2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1VzZVY4LmNtYWtlCmluZGV4IDI5ZDdlNTg3MjhkYjkwNzRkMjIyYmE1MGNiY2Iw
OThhNWIwYzdiZjIuLmI4Mjg0NzcwNWVjMWNmOTQwZjExYzllMTNlMDNiMTVkYjBiZDVhNTkgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1VzZVY4LmNtYWtlCkBAIC0xMzAsNyArMTMwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxl
Y3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTUyYjgwMDFkYzkwMzQ0MGZlMzk4MTQ3MDZi
NDc5NTM3ZjYzOWNiZC4uZjE0Zjk4ZWM2OWViYjE0OWE1OWZjYzRlNmU0MmZlYTYzMGMwZTFlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtOTg3LDcgKzk4Nyw2IEBACiAgICAgICAgICAgICAnZG9tL01l
c3NhZ2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlUG9ydC5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9Nb3VzZUV2ZW50LmlkbCcsCi0gICAgICAgICAgICAnZG9tL011dGF0aW9u
Q2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL011
dGF0aW9uUmVjb3JkLmlkbCcsCkBAIC0yMDU5LDcgKzIwNTgsNyBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwJywKQEAgLTIxMDcsNiArMjEwNiw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1
c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV3JhcHBlclJldGFpbmVkLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAnLApA
QCAtMjE4Niw2ICsyMTg2LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9Jc29sYXRlZFdv
cmxkLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgnLAorICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9OUE9iamVjdFdyYXBwZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9O
UE9iamVjdFdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvTlBWOE9iamVjdC5j
cHAnLApAQCAtMjMwMCw2ICsyMzAyLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhX
b3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvVjhXcmFwcGVyUmV0YWluZWRWYWx1ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9X
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAnLApAQCAtMjM3Miw3ICsyMzc1LDYgQEAKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1
c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwJywKQEAgLTc2NDgsOCArNzY1MCw2IEBACiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01ldGFk
YXRhQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5oJywKLSAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5j
cHAnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0
aW9uT2JzZXJ2ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggNDZlNmFhNzJiYzU2YmRmNTFkN2UzZTJhYmNmMzU5ZjRlMGRlMDhhZS4u
ZTg0MGE5ODFjMTYwMzdlMjNkODk1NmUzMTM4ODI4NzNhY2VjM2E0YyAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNTkwLDYyICsxMTU5MCw2
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uQ2FsbGJhY2suaCIKLQkJCQk+Ci0JCQk8
L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uRXZlbnQuY3Bw
IgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTY2NzAyLDYgKzY2NjQ2LDEwIEBA
CiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNET01XcmFwcGVyLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KQEAgLTY4OTYyLDcgKzY4OTEwLDcgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFja0N1
c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgpAQCAtNjkwMTQsNiArNjg5NjIsMTAgQEAKIAkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2suaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjEy
Mjc3MTU5Mzg4ZGFlODQzNTExMjQwYWM2M2MxMGJjNDYxNDVmMi4uZDhmZDMyNDJlZGMxYjU5NGQz
MGE1MDY3ZmY5MTQ4NzljM2JiMzUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTgxMSwxMiArNTgxMSw5IEBACiAJCUM2RjA5
MDBBMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwMTE0MzI3QjYxMDA2ODU4NDkg
LyogTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwogCQlDNkYwOTAwRTE0MzI3QjYxMDA2ODU4NDkg
LyogTXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZl
ci5jcHAgKi87IH07CiAJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYw
OTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUM2RjA5MDI4MTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFjay5jcHAgKi87IH07Ci0JCUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAq
LzsgfTsKIAkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAy
NDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsKIAkJQzZG
MDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjUxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovOyB9OwogCQlDNkYwOTE3RjE0M0EyQkI5MDA2
ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBK
U011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovOyB9OwotCQlDNkYwOTE4NTE0M0E2QzNCMDA2
ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBK
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovOyB9OwogCQlDNkY0MTA0NzEzMEM2RTg5MDAz
OTNERTQgLyogRW50cnlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICov
OyB9OwogCQlDQTNCRjY3QzEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0IxMEQ5
OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJQ0EzQkY2N0UxMEQ5
OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xs
QW5pbWF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtNjUyNCw2ICs2NTIxLDEwIEBACiAJCUZFODBEQTcyMEU5QzQ3MkYwMDBENkY3NSAvKiBK
U1Bvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFODBEQTZFMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuaCAqLzsg
fTsKIAkJRkZENUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZENUI5Nzcx
MzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovOyB9OwogCQlGRkQ1
Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZENUI5NzgxMzVDQzk3ODAwRDVF
OTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlGRkY2M0FGMjE1RUQ3MTBEMDA3NTkyNzkgLyogSlNXcmFw
cGVyUmV0YWluZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkZGNjNBRUYxNUVENzEwRDAwNzU5Mjc5IC8qIEpTV3JhcHBlclJldGFpbmVkVmFs
dWUuaCAqLzsgfTsKKwkJRkZGNjNBRkExNUVENzE1RTAwNzU5Mjc5IC8qIEpTTXV0YXRpb25DYWxs
YmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RkY2M0FGODE1RUQ3MTVFMDA3NTkyNzkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsK
KwkJRkZGNjNBRkIxNUVENzE1RTAwNzU5Mjc5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZGNjNBRjkxNUVENzE1
RTAwNzU5Mjc5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovOyB9OworCQlGRkY2M0FGRTE1RUQ3
MTZDMDA3NTkyNzkgLyogSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZGNjNBRkQxNUVENzE2QzAwNzU5Mjc5IC8q
IEpTV3JhcHBlclJldGFpbmVkVmFsdWUuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAt
MTMwOTksMTYgKzEzMTAwLDEyIEBACiAJCUM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011
dGF0aW9uUmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TXV0YXRpb25SZWNvcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOEZD
ODE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM2RjA5MDAxMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJhY2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMDIxNDMyN0I2MTAwNjg1ODQ5IC8qIE11
dGF0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJh
Y2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwNTE0MzI3QjYxMDA2
ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRp
b25PYnNlcnZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0
OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQzZGMDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
NkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxi
YWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGNDEwNDYxMzBD
NkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBFbnRyeUJhc2UuY3BwOyBwYXRoID0gTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5
QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdCMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTM5MjYsNiArMTM5MjMsMTAgQEAKIAkJRkU4MERBNkUwRTlDNDcy
RjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkZG
NjNBRUYxNUVENzEwRDAwNzU5Mjc5IC8qIEpTV3JhcHBlclJldGFpbmVkVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRkY2M0FGODE1RUQ3MTVFMDA3NTkyNzkgLyogSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZG
RjYzQUY5MTVFRDcxNUUwMDc1OTI3OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUZGRjYzQUZEMTVFRDcxNkMwMDc1OTI3OSAvKiBKU1dyYXBwZXJS
ZXRhaW5lZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV3JhcHBl
clJldGFpbmVkVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhG
aWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLwpAQCAtMTg4NTcsOCArMTg4NTgsNiBAQAogCQkJCUZFODBEQTYwMEU5QzQ3
MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJCQkJRkU4MERBNjEwRTlDNDcwMzAw
MEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLAogCQkJCUZFODBEQTYyMEU5QzQ3MDMwMDBE
NkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8sCi0JCQkJQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8sCi0JCQkJQzZGMDkwMjExNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovLAogCQkJCUM2RjA5MDI0MTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCUM2RjA5MDI1MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLywKIAkJCQlDNkYwOEZDNzE0MzEwMDBE
MDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8sCkBAIC0yMDEyNCw5ICsyMDEyMywx
MiBAQAogCQkJCTMzMTRBQ0VBMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCAq
LywKIAkJCQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmNwcCAqLywKIAkJCQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmggKi8sCisJCQkJRkZGNjNBRjgxNUVENzE1RTAwNzU5Mjc5IC8qIEpTTXV0YXRpb25D
YWxsYmFjay5jcHAgKi8sCisJCQkJRkZGNjNBRjkxNUVENzE1RTAwNzU5Mjc5IC8qIEpTTXV0YXRp
b25DYWxsYmFjay5oICovLAogCQkJCTkzQjcwRDRGMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdp
bkVsZW1lbnRGdW5jdGlvbnMuY3BwICovLAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2OCAv
KiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQkxNENEOEQ4MTEwNkI1MjkwMDBB
NDZEMjMgLyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwICovLAorCQkJCUZGRjYzQUZEMTVFRDcx
NkMwMDc1OTI3OSAvKiBKU1dyYXBwZXJSZXRhaW5lZFZhbHVlLmggKi8sCiAJCQkJRTFDMzZEMzIw
RUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAogCQkJCUUxQzM2
RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8sCiAJCQkJRjM0
NzQyRTIxMzQzNjMzQzAwNTMxQkMyIC8qIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi8sCkBA
IC0yMDMxMSw3ICsyMDMxMyw2IEBACiAJCQkJRTFBREVENDYwRTc2QjhERDAwNEExQTVFIC8qIEpT
TWVzc2FnZVBvcnRDdXN0b20uY3BwICovLAogCQkJCTQxRjU4NEM2MTA0NjUyQ0IwMDlDQUE2NCAv
KiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8sCiAJCQkJMTA1OTQ1NzIxNUI0Mjk1MzAwNEQzN0ZE
IC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCAqLywKLQkJCQlDNkYwOTE4NDE0M0E2
QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQlDNkYw
OTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLywK
IAkJCQlCQ0Q5QzI1RjBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
ICovLAogCQkJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwICov
LApAQCAtMjAzMjQsNiArMjAzMjUsNyBAQAogCQkJCUUxQUQxMkQ1MTI5NUQwQkQwMEFDQTk4OSAv
KiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJNDk5OEFFRDMxM0ZD
NDE3RjAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3Bw
ICovLAogCQkJCTlGQTM3RUU2MTE3MkZDRjAwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2Rl
Q3VzdG9tLmNwcCAqLywKKwkJCQlGRkY2M0FFRjE1RUQ3MTBEMDA3NTkyNzkgLyogSlNXcmFwcGVy
UmV0YWluZWRWYWx1ZS5oICovLAogCQkJCTUxRENFODAxMENBQzlGMUMwMDQ4ODM1OCAvKiBKU1NR
TFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwICovLAogCQkJCTFBRDIzMTZEMENEMjY5RTcwMEMx
RjE5NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlCNTVENUFBNzExOTEz
MjUwMDBCQ0MzMTUgLyogSlNTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwICovLApAQCAtMjE2
NTgsNyArMjE2NjAsNiBAQAogCQkJCTg1MDMxQjMxMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZVJl
bGF0ZWRFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzIwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNl
UmVsYXRlZEV2ZW50LmggKi8sCiAJCQkJQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0
aW9uQ2FsbGJhY2suaCAqLywKLQkJCQlDNkYwOTAwMjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRp
b25DYWxsYmFjay5pZGwgKi8sCiAJCQkJODUwMzFCMzMwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0
aW9uRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjM0MEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlv
bkV2ZW50LmggKi8sCiAJCQkJOTNFRUMxRjMwOUMyODc3NzAwQzUxNUQxIC8qIE11dGF0aW9uRXZl
bnQuaWRsICovLApAQCAtMjM5NDksNyArMjM5NTAsNiBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcw
MDNBQUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTEwNTk0
NTdBMTVCNDJBNDMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTg2NjI5RDEwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQzZGMDkwMjkxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMxRkMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpT
TXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDhGQ0Ex
NDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjU0MjAsNiArMjU0MjAsOSBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xU
VW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3
OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAw
MDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUZGRjYzQUYyMTVFRDcxMEQw
MDc1OTI3OSAvKiBKU1dyYXBwZXJSZXRhaW5lZFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
RkY2M0FGQjE1RUQ3MTVFMDA3NTkyNzkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGRkY2M0FGRTE1RUQ3MTZDMDA3NTkyNzkgLyogSlNXcmFwcGVyUmV0YWluZWRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzIwMyw4ICsyNzIwNiw2IEBACiAJCQkJMTA1OTQ1
NzcxNUI0MkEwRDAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTEwNTk0NTczMTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1
ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODY2MjlEMjA5REEyQjQ4MDA5NjMzQTUg
LyogSlNNb3VzZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM2RjA5MDI4MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZG
MDkxODUxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkxN0YxNDNBMkJC
OTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI4NTAxLDYgKzI4NTAyLDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyog
WFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMw
MEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3
QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRkY2M0FG
QTE1RUQ3MTVFMDA3NTkyNzkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAKaW5kZXggMzM2MTliNTM1Zjc0MTg1ZTdkMDQ4YTc4NmVlOWRjOThhZDkzMDQ5ZC4uZGMyZDhi
ZDM2NTE1MjlkMDM4MTA2MjQ0OTYzOWU1OThhYzcyODUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMTYsNyArMTE2LDcg
QEAKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20u
Y3BwIgotI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiCisjaW5jbHVkZSAi
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U05vZGVDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0
YXRpb25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MjcyNGRkMmZhNjk1MWFiODE2ZDgyZDQy
ZjhlMDcxMzRkMDAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJKU011
dGF0aW9uQ2FsbGJhY2suaCIKKworI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgorI2luY2x1
ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8cnVudGltZS9K
U0xvY2suaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitKU011dGF0aW9uQ2FsbGJhY2s6OkpTTXV0YXRpb25DYWxsYmFjayhKU09iamVjdCogY2FsbGJh
Y2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgOiBBY3RpdmVET01DYWxs
YmFjayhnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIEpTV3Jh
cHBlclJldGFpbmVkVmFsdWUoY2FsbGJhY2spCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KQoreworfQorCitib29sIEpTTXV0YXRp
b25DYWxsYmFjazo6Y2FsbChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIE11dGF0aW9u
T2JzZXJ2ZXIqIG9ic2VydmVyKQoreworICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBSZWZQdHI8SlNNdXRhdGlvbkNhbGxiYWNrPiBwcm90
ZWN0KHRoaXMpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21t
b25KU0dsb2JhbERhdGEoKSk7CisgICAgSlNDYWxsYmFja0RhdGEgZGF0YShzY3JpcHRWYWx1ZSgp
LCBtX2dsb2JhbE9iamVjdC5nZXQoKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBkYXRhLmds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBt
dXRhdGlvbkxpc3Q7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMtPnNpemUo
KTsgKytpKQorICAgICAgICBtdXRhdGlvbkxpc3QuYXBwZW5kKHRvSlMoZXhlYywgZGF0YS5nbG9i
YWxPYmplY3QoKSwgbXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOworCisgICAgSlNWYWx1ZSBqc09i
c2VydmVyID0gdG9KUyhleGVjLCBkYXRhLmdsb2JhbE9iamVjdCgpLCBvYnNlcnZlcik7CisKKyAg
ICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEFy
cmF5KGV4ZWMsIGRhdGEuZ2xvYmFsT2JqZWN0KCksIG11dGF0aW9uTGlzdCkpOworICAgIGFyZ3Mu
YXBwZW5kKGpzT2JzZXJ2ZXIpOworCisgICAgYm9vbCByYWlzZWRFeGNlcHRpb24gPSBmYWxzZTsK
KyAgICBkYXRhLmludm9rZUNhbGxiYWNrKGpzT2JzZXJ2ZXIsIGFyZ3MsICZyYWlzZWRFeGNlcHRp
b24pOworICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NzEzYTE5NTUyZjNiMTAzMGZkYWVhNzNjYTg5ZjA0N2U4NTk4ZDI2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTAs
MCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgSlNNdXRhdGlvbkNhbGxiYWNrX2gKKyNkZWZpbmUgSlNNdXRhdGlv
bkNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRl
ICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCisjaW5j
bHVkZSAiSlNXcmFwcGVyUmV0YWluZWRWYWx1ZS5oIgorI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTTXV0YXRpb25DYWxsYmFjayA6IHB1Ymxp
YyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2ssIHB1YmxpYyBKU1dy
YXBwZXJSZXRhaW5lZFZhbHVlPE11dGF0aW9uT2JzZXJ2ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU09iamVjdCogY2FsbGJh
Y2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEpTTXV0YXRpb25DYWxsYmFjayhjYWxsYmFjaywgZ2xvYmFsT2JqZWN0
KSk7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGNhbGwoTXV0YXRpb25SZWNvcmRBcnJheSos
IE11dGF0aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBKU011dGF0aW9u
Q2FsbGJhY2soSlNPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCopOworCisgICAgSlNDOjpTdHJv
bmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNh
bGxiYWNrQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNkZTdiNzk0
NmFlMWM2ZGNmOTc1MzhjN2IyYWQzNTk2NGRkMDQ4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0
aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNs
dWRlICJKU011dGF0aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5o
IgotI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgIkpTTXV0YXRpb25S
ZWNvcmQuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8
cnVudGltZS9KU0xvY2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1ib29sIEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25S
ZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAg
ICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
UmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQotICAgIEpTTG9ja0hv
bGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotCi0gICAg
RXhlY1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwot
Ci0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbXV0YXRpb25MaXN0OwotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbXV0YXRpb25zLT5zaXplKCk7ICsraSkKLSAgICAgICAgbXV0YXRpb25MaXN0
LmFwcGVuZCh0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCksIG11dGF0aW9ucy0+YXQo
aSkuZ2V0KCkpKTsKLQotICAgIEpTVmFsdWUganNPYnNlcnZlciA9IHRvSlMoZXhlYywgbV9kYXRh
LT5nbG9iYWxPYmplY3QoKSwgb2JzZXJ2ZXIpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIg
YXJnczsKLSAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RBcnJheShleGVjLCBtX2RhdGEtPmdsb2Jh
bE9iamVjdCgpLCBtdXRhdGlvbkxpc3QpKTsKLSAgICBhcmdzLmFwcGVuZChqc09ic2VydmVyKTsK
LQotICAgIGJvb2wgcmFpc2VkRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgbV9kYXRhLT5pbnZva2VD
YWxsYmFjayhqc09ic2VydmVyLCBhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsKLSAgICByZXR1cm4g
IXJhaXNlZEV4Y2VwdGlvbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IGFiNTU2MGQ4
MGNjOTdjNDMwMWM3ZjUwYWUxNDA4NDE3ZmUwY2IwYjIuLmFmM2Y5YTNlY2M4ODJkM2Q3MDU5YjJj
MGNhZDNmMGVmM2QxYzZiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtNTQsOCArNTQsMTAgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNNdXRhdGlvbk8KICAgICB9CiAKICAgICBKU011dGF0aW9uT2JzZXJ2ZXJDb25z
dHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1
Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2Fs
bGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3RydWN0b3It
Pmdsb2JhbE9iamVjdCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRv
SlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE11dGF0aW9uT2JzZXJ2ZXI6
OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSkpOworICAgIFJlZlB0cjxKU011dGF0aW9uQ2Fs
bGJhY2s+IGNhbGxiYWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBqc0Nv
bnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSk7CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+
IG9ic2VydmVyID0gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLCBqc0NvbnN0cnVj
dG9yLT5nbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBjYWxs
YmFjay0+cmV0YWluZWRCeShleGVjLCBvYnNlcnZlcik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBv
YnNlcnZlci5yZWxlYXNlKCkpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV3JhcHBlclJldGFpbmVkVmFsdWUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV3JhcHBlclJldGFpbmVkVmFsdWUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMTNmMWJjZGJhNzViNzY4YWZhMGRiYzVmODAzZTViMmY1ZTRlYmUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXcmFwcGVyUmV0YWlu
ZWRWYWx1ZS5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTV3JhcHBlclJldGFpbmVkVmFsdWVf
aAorI2RlZmluZSBKU1dyYXBwZXJSZXRhaW5lZFZhbHVlX2gKKworI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgorI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmpl
Y3QuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBKU1dy
YXBwZXJSZXRhaW5lZFZhbHVlIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKK3B1Ymxp
YzoKKyAgICBKU1dyYXBwZXJSZXRhaW5lZFZhbHVlKEpTT2JqZWN0KiB2YWx1ZSkKKyAgICAgICAg
OiBtX293bmVyKDApCisgICAgICAgICwgbV92YWx1ZShKU0M6OlBhc3NXZWFrPEpTT2JqZWN0Pih2
YWx1ZSwgdGhpcykpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfkpTV3JhcHBlclJldGFp
bmVkVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmVsZWFzZVNjcmlwdFZhbHVlKCk7CisgICAgfQor
CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PFVua25vd24+LCB2b2lkKiwgU2xvdFZpc2l0b3ImKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fb3duZXIgJiYgZ2V0Q2FjaGVkV3JhcHBlcihtX3dyYXBwZXJXb3JsZC5nZXQoKSwg
bV9vd25lcik7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxl
PFVua25vd24+LCB2b2lkKikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIHJlbGVhc2VTY3JpcHRW
YWx1ZSgpOworICAgIH0KKworICAgIHZvaWQgcmV0YWluZWRCeShFeGVjU3RhdGUqIGV4ZWMsIFBh
c3NSZWZQdHI8VD4gb3duZXIpCisgICAgeworICAgICAgICBBU1NFUlQob3duZXIpOworICAgICAg
ICBtX3dyYXBwZXJXb3JsZCA9IGN1cnJlbnRXb3JsZChleGVjKTsKKyAgICAgICAgbV9vd25lciA9
IG93bmVyLmdldCgpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIEpTT2JqZWN0KiBzY3JpcHRW
YWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZS5nZXQoKTsKKyAgICB9
CisKKyAgICB2b2lkIHJlbGVhc2VTY3JpcHRWYWx1ZSgpCisgICAgeworICAgICAgICBtX3dyYXBw
ZXJXb3JsZCA9IDA7CisgICAgICAgIG1fdmFsdWUuY2xlYXIoKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgVCogbV9vd25lcjsKKyAgICBXZWFrPEpTT2JqZWN0PiBtX3ZhbHVlOworICAgIFJlZlB0
cjxET01XcmFwcGVyV29ybGQ+IG1fd3JhcHBlcldvcmxkOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gSlNXcmFwcGVyUmV0YWluZWRWYWx1ZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwCmluZGV4IDU0ZjU3MmE1NWYwOTI2NTliNjlm
MTJkNDhlYjJmNDI5ZmFiYmYwMTEuLjJlMjUwNjExNDEzZGY3YzM2YTViMGQ2NjliMDUxMjE1YmYy
NmE4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwCkBAIC0z
NiwxOSArMzYsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIGludm9rZUNhbGxi
YWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQgYXJnYywgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK2Jvb2wgaW52b2tlQ2Fs
bGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7CiAgICAgcmV0dXJuIGlu
dm9rZUNhbGxiYWNrKGNhbGxiYWNrLCB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwo
KSwgYXJnYywgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CiB9CiAKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
Y2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhpc09iamVjdCwgaW50IGFyZ2MsIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCitib29sIGludm9r
ZUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gdGhpc09iamVjdCwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2
W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7CiAgICAgdjg6OlRyeUNhdGNoIGV4Y2VwdGlvbkNhdGNo
ZXI7CiAgICAgZXhjZXB0aW9uQ2F0Y2hlci5TZXRWZXJib3NlKHRydWUpOwogCiAgICAgdjg6Okxv
Y2FsPHY4OjpGdW5jdGlvbj4gY2FsbGJhY2tGdW5jdGlvbjsKICAgICBpZiAoY2FsbGJhY2stPklz
RnVuY3Rpb24oKSkgewotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpG
dW5jdGlvbj46Ok5ldyh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb24+OjpDYXN0KGNhbGxiYWNr
KSk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6
TmV3KHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2FzdChjYWxsYmFjaykpOwogICAgIH0gZWxz
ZSBpZiAoY2FsbGJhY2stPklzT2JqZWN0KCkpIHsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gaGFuZGxlRXZlbnRGdW5jdGlvbiA9IGNhbGxiYWNrLT5HZXQodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKCJoYW5kbGVFdmVudCIpKTsKICAgICAgICAgaWYgKGhhbmRsZUV2ZW50RnVuY3Rpb24tPklz
RnVuY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2Fs
bGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suaAppbmRleCA5
MjUzNjQ3ZmM0N2E0ZWRkYWI1YWYyNTUzZWZhODgwZWFkOWUxNWI0Li5lMmM0OTcyOWIwNWUzM2Iy
NzdmZjAzMjk3ZTc5YTk5YzNjMDk5ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOENhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhD
YWxsYmFjay5oCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2Fs
bGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhpc09iamVjdCwgaW50IGFyZ2MsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10s
IGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKK2Jv
b2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFjaywgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB0aGlzT2JqZWN0LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcAppbmRleCBmZGRkYWZiYWUx
OWE0ZWE3NmUyMDkzMDU2MTljNWQ5OGE0ZWJjNDgyLi44YjQyN2EwMDM2ODU0NDhlZGRjNGVhN2Zh
ODBlZGJhZDQ1MGE3MDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCkBAIC01NSwxMyArNTUsMTUgQEAgdjg6OkhhbmRsZTx2
ODo6U3RyaW5nPiBWOEhpZGRlblByb3BlcnR5TmFtZTo6bmFtZSgpIFwKIAogVjhfSElEREVOX1BS
T1BFUlRJRVMoVjhfREVGSU5FX0hJRERFTl9QUk9QRVJUWSk7CiAKLXY4OjpIYW5kbGU8djg6OlN0
cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hh
ciogbmFtZSkKK3Y4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Omhp
ZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtZSwgYm9vbCBzeW1ib2wpCiB7CiAgICAg
VmVjdG9yPGNoYXIsIDY0PiBwcmVmaXhlZE5hbWU7CiAgICAgcHJlZml4ZWROYW1lLmFwcGVuZChW
OF9ISURERU5fUFJPUEVSVFlfUFJFRklYLCBzaXplb2YoVjhfSElEREVOX1BST1BFUlRZX1BSRUZJ
WCkgLSAxKTsKICAgICBBU1NFUlQobmFtZSAmJiBzdHJsZW4obmFtZSkpOwogICAgIHByZWZpeGVk
TmFtZS5hcHBlbmQobmFtZSwgc3RybGVuKG5hbWUpKTsKLSAgICByZXR1cm4gdjg6OlN0cmluZzo6
TmV3U3ltYm9sKHByZWZpeGVkTmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocHJlZml4ZWRO
YW1lLnNpemUoKSkpOworICAgIGlmIChzeW1ib2wpCisgICAgICAgIHJldHVybiB2ODo6U3RyaW5n
OjpOZXdTeW1ib2wocHJlZml4ZWROYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihwcmVmaXhl
ZE5hbWUuc2l6ZSgpKSk7CisgICAgcmV0dXJuIHY4OjpTdHJpbmc6Ok5ldyhwcmVmaXhlZE5hbWUu
ZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHByZWZpeGVkTmFtZS5zaXplKCkpKTsKIH0KIAogdjg6
OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmNyZWF0ZVN0cmlu
Zyhjb25zdCBjaGFyKiBrZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhI
aWRkZW5Qcm9wZXJ0eU5hbWUuaAppbmRleCA5ZGRmYTMwZjU3ZjI4NzU2NTIwMTQ5MDQxNDBmZWEz
YjJmMmZmNjBiLi43ZmVmZjBhOGZhMjQ1M2Q5MTYwMjBiMDE1ZjZkOWZhYzllNTZlMmQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgK
QEAgLTU3LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBWOF9ISURERU5f
UFJPUEVSVElFUyhWOF9ERUNMQVJFX1BST1BFUlRZKTsKICN1bmRlZiBWOF9ERUNMQVJFX1BST1BF
UlRZCiAKLSAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gaGlkZGVuUmVmZXJl
bmNlTmFtZShjb25zdCBjaGFyKiBuYW1lKTsKKyAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlN0cmluZz4gaGlkZGVuUmVmZXJlbmNlTmFtZShjb25zdCBjaGFyKiBuYW1lLCBib29sIHN5bWJv
bCA9IHRydWUpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50
PHY4OjpTdHJpbmc+IGNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWY5Yzc2YTIyOTFjYzM5YTIyYTYwNjdiZjVlZDMyNzU3MmJhYjZkNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5jcHAKQEAg
LTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNVVRB
VElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKKworI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
KyNpbmNsdWRlICJWOENhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgi
CisjaW5jbHVkZSAiVjhNdXRhdGlvblJlY29yZC5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitWOE11dGF0aW9uQ2FsbGJhY2s6OlY4TXV0YXRpb25DYWxsYmFj
ayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9ic2VydmVyLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogQWN0aXZl
RE9NQ2FsbGJhY2soY29udGV4dCkKKyAgICAsIFY4V3JhcHBlclJldGFpbmVkVmFsdWUob2JzZXJ2
ZXIsIGNhbGxiYWNrKQorICAgICwgbV93b3JsZENvbnRleHQoVXNlQ3VycmVudFdvcmxkKQorewor
fQorCitib29sIFY4TXV0YXRpb25DYWxsYmFjazo6Y2FsbChNdXRhdGlvblJlY29yZEFycmF5KiBt
dXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQoreworICAgIEFTU0VSVChtdXRh
dGlvbnMpOworICAgIGlmICghbXV0YXRpb25zKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB2
ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29y
bGRDb250ZXh0KTsKKyAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKKworICAg
IHY4OjpMb2NhbDx2ODo6QXJyYXk+IG11dGF0aW9uc0FycmF5ID0gdjg6OkFycmF5OjpOZXcobXV0
YXRpb25zLT5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbXV0YXRpb25zLT5z
aXplKCk7ICsraSkKKyAgICAgICAgbXV0YXRpb25zQXJyYXktPlNldCh2OEludGVnZXIoaSksIHRv
VjgobXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOworCisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZlcik7CisgICAgaWYgKG9ic2VydmVySGFuZGxl
LklzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWlzU2NyaXB0Q29udHJvbGxlclRlcm1pbmF0aW5n
KCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBpZiAoIW9ic2VydmVySGFuZGxlLT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10gPSB7CisgICAgICAgIG11dGF0
aW9uc0FycmF5LAorICAgICAgICBvYnNlcnZlckhhbmRsZQorICAgIH07CisKKyAgICBib29sIGNh
bGxiYWNrUmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICByZXR1cm4gIWludm9rZUNhbGxiYWNrKHNj
cmlwdFZhbHVlKCksIG9ic2VydmVySGFuZGxlLT5Ub09iamVjdCgpLCAyLCBhcmd2LCBjYWxsYmFj
a1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xYmZiOWNmNzBmODY1OGQxNGEyYjY4MDBjMzNiNzVkMDdjZTJmNzJiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmgK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaWZuZGVm
IFY4TXV0YXRpb25DYWxsYmFja19oCisjZGVmaW5lIFY4TXV0YXRpb25DYWxsYmFja19oCisKKyNp
bmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJWOFdyYXBwZXJSZXRhaW5lZFZhbHVlLmgiCisjaW5jbHVkZSAiV29ybGRD
b250ZXh0SGFuZGxlLmgiCisjaW5jbHVkZSA8djguaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CisKK2NsYXNzIFY4TXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBNdXRhdGlvbkNhbGxiYWNrLCBw
dWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2ssIHB1YmxpYyBWOFdyYXBwZXJSZXRhaW5lZFZhbHVlPE11
dGF0aW9uT2JzZXJ2ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxWOE11dGF0
aW9uQ2FsbGJhY2s+IGNyZWF0ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9ic2VydmVyLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOE11dGF0aW9uQ2FsbGJh
Y2sob2JzZXJ2ZXIsIGNhbGxiYWNrLCBjb250ZXh0KSk7CisgICAgfQorCisgICAgdmlydHVhbCBi
b29sIGNhbGwoTXV0YXRpb25SZWNvcmRBcnJheSosIE11dGF0aW9uT2JzZXJ2ZXIqKSBPVkVSUklE
RTsKKworcHJpdmF0ZToKKyAgICBWOE11dGF0aW9uQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Piwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwor
ICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKK307CisKK30KKworI2VuZGlm
IC8vIFY4TXV0YXRpb25DYWxsYmFja19oCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JT
RVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXcmFwcGVy
UmV0YWluZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXcmFwcGVyUmV0
YWluZWRWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNTg1NjZmNTBlNmQ1N2RhMDVhZmZhYzgyZTgzYWQ4
NDZlNjMzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFdyYXBwZXJSZXRhaW5lZFZhbHVlLmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVjhXcmFwcGVy
UmV0YWluZWRWYWx1ZV9oCisjZGVmaW5lIFY4V3JhcHBlclJldGFpbmVkVmFsdWVfaAorCisjaW5j
bHVkZSAiT3duSGFuZGxlLmgiCisjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKKyNp
bmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL2R0
b2EuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xh
c3MgVjhXcmFwcGVyUmV0YWluZWRWYWx1ZSB7CitwdWJsaWM6CisgICAgVjhXcmFwcGVyUmV0YWlu
ZWRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIsIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gdmFsdWUpCisgICAgICAgIDogbV93cmFwcGVyKHdyYXBwZXIpCisgICAgICAgICwgbV92
YWx1ZSh2YWx1ZSkKKyAgICAgICAgLCBtX3Byb3BlcnR5TmFtZShjcmVhdGVQcm9wZXJ0eU5hbWUo
KSkKKyAgICB7CisgICAgICAgIEFTU0VSVCghd3JhcHBlci5Jc0VtcHR5KCkpOworICAgICAgICBt
X3ZhbHVlLm1ha2VXZWFrKCk7CisgICAgICAgIG1fd3JhcHBlci5tYWtlV2VhaygpOworICAgICAg
ICB3cmFwcGVyLT5TZXRIaWRkZW5WYWx1ZShtX3Byb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIH0K
KworICAgIHZpcnR1YWwgflY4V3JhcHBlclJldGFpbmVkVmFsdWUoKQorICAgIHsKKyAgICAgICAg
cmVsZWFzZVNjcmlwdFZhbHVlKCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiBzY3JpcHRWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV92YWx1ZS5nZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2VTY3JpcHRWYWx1ZSgpCisg
ICAgeworICAgICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisgICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IG1fd3JhcHBlci5nZXQoKTsKKyAgICAgICAgaWYg
KCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIHdyYXBwZXItPkRlbGV0ZUhpZGRlblZh
bHVlKG1fcHJvcGVydHlOYW1lKTsKKyAgICAgICAgbV93cmFwcGVyLmNsZWFyKCk7CisgICAgICAg
IG1fdmFsdWUuY2xlYXIoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHY4OjpQZXJz
aXN0ZW50PHY4OjpTdHJpbmc+IGNyZWF0ZVByb3BlcnR5TmFtZSgpCisgICAgeworICAgICAgICBz
dGF0aWMgZG91YmxlIG5leHRJZCA9IDA7CisgICAgICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsK
KyAgICAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICAgICAgICByZXR1cm4gdjg6
OlBlcnNpc3RlbnQ8djg6OlN0cmluZz46Ok5ldyhWOEhpZGRlblByb3BlcnR5TmFtZTo6aGlkZGVu
UmVmZXJlbmNlTmFtZShudW1iZXJUb1N0cmluZyhuZXh0SWQrKywgYnVmZmVyKSwgZmFsc2UpKTsK
KyAgICB9CisKKyAgICBPd25IYW5kbGU8djg6Ok9iamVjdD4gbV93cmFwcGVyOworICAgIE93bkhh
bmRsZTx2ODo6T2JqZWN0PiBtX3ZhbHVlOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+
IG1fcHJvcGVydHlOYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVjhXcmFwcGVyUmV0YWluZWRWYWx1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjMwOTVkNjNmNDRmZWY0OTBkN2Y2ZTViOTI1
Nzg3NWIwNmRlYTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJW
OE11dGF0aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOENhbGxiYWNrLmgiCi0jaW5j
bHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVkZSAiVjhNdXRhdGlvblJlY29yZC5o
IgotI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1ib29sIFY4TXV0YXRp
b25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBN
dXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBBU1NFUlQobXV0YXRpb25zKTsKLSAg
ICBpZiAoIW11dGF0aW9ucykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWNhbklu
dm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgdjg6OkhhbmRsZVNj
b3BlIGhhbmRsZVNjb3BlOwotCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0
ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dCk7
Ci0gICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7Ci0KLSAgICB2ODo6TG9jYWw8
djg6OkFycmF5PiBtdXRhdGlvbnNBcnJheSA9IHY4OjpBcnJheTo6TmV3KG11dGF0aW9ucy0+c2l6
ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11dGF0aW9ucy0+c2l6ZSgpOyArK2kp
Ci0gICAgICAgIG11dGF0aW9uc0FycmF5LT5TZXQodjhJbnRlZ2VyKGkpLCB0b1Y4KG11dGF0aW9u
cy0+YXQoaSkuZ2V0KCkpKTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYnNlcnZlckhh
bmRsZSA9IHRvVjgob2JzZXJ2ZXIpOwotICAgIGlmIChvYnNlcnZlckhhbmRsZS5Jc0VtcHR5KCkp
IHsKLSAgICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGluZygpKQotICAgICAg
ICAgICAgQ1JBU0goKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKCFv
YnNlcnZlckhhbmRsZS0+SXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewotICAgICAgICBtdXRhdGlvbnNBcnJheSwK
LSAgICAgICAgb2JzZXJ2ZXJIYW5kbGUKLSAgICB9OwotCi0gICAgYm9vbCBjYWxsYmFja1JldHVy
blZhbHVlID0gZmFsc2U7Ci0gICAgcmV0dXJuICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KG9ic2VydmVySGFuZGxlKSwgMiwgYXJndiwgY2Fs
bGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggN2M5ZTUyNTBhYmY2ZTJiMzI1NmRiMDU3
MmUwNmQzOWZmN2EzNTFhYy4uNWNmOGE3YTExYzdjMWE1OTBkZmM0MTYwZmJiYjFhZDA2YWQ4MDVk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNs
dWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJW
OE11dGF0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhV
dGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTIgKzY0LDEyIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihSZWZlcmVuY2VFcnJvciwgIk11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3In
cyBhc3NvY2lhdGVkIGZyYW1lIHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCi0g
ICAgUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNhbGxiYWNr
OjpjcmVhdGUoYXJnLCBjb250ZXh0KTsKLSAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2Jz
ZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKTsKLQog
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7CisgICAg
UmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNhbGxiYWNrOjpj
cmVhdGUod3JhcHBlciwgYXJnLT5Ub09iamVjdCgpLCBjb250ZXh0KTsKKyAgICBSZWZQdHI8TXV0
YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJh
Y2sucmVsZWFzZSgpLCBjb250ZXh0KTsKKwogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBl
cih3cmFwcGVyLCAmaW5mbywgb2JzZXJ2ZXIuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0
SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9ic2VydmVyLnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAg
VjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JBY3RpdmVET01PYmplY3Qob2JzZXJ2ZXIucmVs
ZWFzZSgpLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbkNhbGxiYWNrLmgKaW5kZXggMTE5MTk3YWJlMzRiMWRhOTA0ZDQyMmJiZjhlMGYx
Zjc3ZTc3NmRmMi4uZmE0MTA0ZDQ3NmFhNzc4MjUxNWVkYWUxYzhkN2U2MTZjNDY4MjQwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNz
IE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbkNhbGxiYWNrPiB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TXV0YXRpb25DYWxsYmFjaygpIHsgfQogCi0gICAgdmly
dHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqLCBNdXRhdGlvbk9ic2Vy
dmVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjYWxsKE11dGF0aW9uUmVjb3JkQXJyYXkqLCBN
dXRhdGlvbk9ic2VydmVyKikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
Q2FsbGJhY2suaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWVjZDliZTllNDFk
ZTRmMzJlNDZmOWQwNWIwZWJmMmNlNDg1MGU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlk
bAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJm
YWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAotICAgICAgICBD
YWxsYmFjawotICAgIF0gTXV0YXRpb25DYWxsYmFjayB7Ci0gICAgICAgIFtDdXN0b21dIGJvb2xl
YW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJheSBtdXRhdGlvbnMsIGluIE11dGF0
aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwotICAgIH07Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlci5jcHAKaW5kZXggYTQwZDUwN2ZlNzAwM2EwMjRjYWU2NGM4Y2ViZjhmOGIzNWUx
ZTM1YS4uYzQzMDgxMDUzNmU1ZDcyNzRkZmU2NTViYzlhZjlhY2Q1MDRhMjQwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNTcsMTQgKzU3LDE3IEBAIHN0cnVj
dCBNdXRhdGlvbk9ic2VydmVyOjpPYnNlcnZlckxlc3NUaGFuIHsKICAgICB9CiB9OwogCi1QYXNz
UmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQYXNzUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQorUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2Vy
dmVyPiBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNr
PiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25PYnNl
cnZlcihjYWxsYmFjaykpOworICAgIFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9
IGFkb3B0UmVmKG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrLCBjb250ZXh0KSk7CisgICAg
b2JzZXJ2ZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBvYnNlcnZlci5yZWxlYXNl
KCk7CiB9CiAKLU11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxN
dXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKLSAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCitN
dXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxs
YmFjaz4gY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2sp
CiAgICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlvcml0eSsrKQogewogfQpAQCAtMTQwLDEy
ICsxNDMsMTQgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkaXNjb25uZWN0KCkKIHZvaWQgTXV0
YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24qIHJlZ2lzdHJhdGlvbikKIHsKICAgICBBU1NFUlQoIW1fcmVnaXN0cmF0aW9ucy5jb250
YWlucyhyZWdpc3RyYXRpb24pKTsKKyAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAg
bV9yZWdpc3RyYXRpb25zLmFkZChyZWdpc3RyYXRpb24pOwogfQogCiB2b2lkIE11dGF0aW9uT2Jz
ZXJ2ZXI6Om9ic2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVn
aXN0cmF0aW9uKQogewogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbnMuY29udGFpbnMocmVnaXN0
cmF0aW9uKSk7CisgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9yZWdpc3Ry
YXRpb25zLnJlbW92ZShyZWdpc3RyYXRpb24pOwogfQogCkBAIC0xODgsNyArMTkzLDcgQEAgdm9p
ZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKCkKICAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9u
UmVjb3JkPiA+IHJlY29yZHM7CiAgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7CiAKLSAgICBt
X2NhbGxiYWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhpcyk7CisgICAgbV9jYWxsYmFjay0+
Y2FsbCgmcmVjb3JkcywgdGhpcyk7CiB9CiAKIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZl
ckFsbE11dGF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAppbmRleCBm
YWRiMzc4ZDFlZmRlYmQxY2JjZTMyNDdlZDlmOWZiMTAzNzczNDAxLi5hNzM5MjZhNzEzNGQzOTFm
ZTA5M2IxYzgzYTU1MzhhZjUxZDE2YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
QEAgLTQ4LDEzICs0OSwxNCBAQCBjbGFzcyBNdXRhdGlvbkNhbGxiYWNrOwogY2xhc3MgTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbjsKIGNsYXNzIE11dGF0aW9uUmVjb3JkOwogY2xhc3MgTm9k
ZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlv
bkNvZGU7CiAKIHR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvbk9ic2VydmVyT3B0aW9uczsK
IHR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9uczsKIAot
Y2xhc3MgTXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2
ZXI+IHsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlv
bk9ic2VydmVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CiAgICAgZW51bSBN
dXRhdGlvblR5cGUgewogICAgICAgICBDaGlsZExpc3QgPSAxIDw8IDAsCkBAIC03NCwxMCArNzYs
MTAgQEAgcHVibGljOgogICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCiAg
ICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQ
YXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRh
dGlvbk9ic2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRlbGl2ZXJBbGxNdXRhdGlvbnMo
KTsKIAotICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CisgICAgdmlydHVhbCB+TXV0YXRpb25PYnNl
cnZlcigpOwogCiAgICAgdm9pZCBvYnNlcnZlKE5vZGUqLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gdGFrZVJl
Y29yZHMoKTsKQEAgLTkwLDcgKzkyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdHJ1Y3Qg
T2JzZXJ2ZXJMZXNzVGhhbjsKIAotICAgIGV4cGxpY2l0IE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1Jl
ZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihQ
YXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAg
ICAgdm9pZCBkZWxpdmVyKCk7CiAKICAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZU9wdGlvbnMoTXV0
YXRpb25PYnNlcnZlck9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIu
aWRsCmluZGV4IDBhZTk5MmU2ZGE3NWU1MTU0M2Y3Nzk4YjcxNjA2NTk4ZDE3OWFjMjEuLjMxMjFm
YWIzMThhZGFmMTFiYWQ0NGU3NjZlZWMwOWVkZGMxZGNlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5pZGwKQEAgLTMwLDkgKzMwLDEwIEBACiAKIG1vZHVsZSBjb3JlIHsK
ICAgICBpbnRlcmZhY2UgWworICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIENvbmRp
dGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSUywKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCi0g
ICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xCisgICAgICAgIENvbnN0cnVjdG9yUGFyYW1l
dGVycz0xLAogICAgIF0gTXV0YXRpb25PYnNlcnZlciB7CiAgICAgICAgIHZvaWQgb2JzZXJ2ZShp
biBOb2RlIHRhcmdldCwgaW4gRGljdGlvbmFyeSBvcHRpb25zKQogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164969</attachid>
            <date>2012-09-20 13:15:27 -0700</date>
            <delta_ts>2012-09-20 14:30:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93661-20120920131452.patch</filename>
            <type>text/plain</type>
            <size>62433</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2ZkZmYxOThmYmVhYzY0NjkzYTE4OTgwZjEzNzZkMWM0MjEyN2I1Li4xM2Y0MjhmZDFmMzMzOGJh
YmY5ZTFiZDE3YTliNDE1YzBhYTQzMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0wOS0yMCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBzaG91bGQgbm90IGNyZWF0ZSBjaXJj
dWxhciwgbGVha3kgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvcnQgcmVtb3ZlRGlyZWN0IGZvciB1c2UgaW4gV2ViQ29yZSBiaW5k
aW5ncy4KKworICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTT2JqZWN0
KToKKwogMjAxMi0wOS0xOCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFVzZSBXVEY6Okhhc1RyaXZpYWxEZXN0cnVjdG9yIGluc3RlYWQgb2YgY29t
cGlsZXItc3BlY2lmaWMgdmVyc2lvbnMgaW4gSlNDOjpOZWVkc0Rlc3RydWN0b3IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBmOTEwMTkzYzFkYTI2YTQ1M2E0NWM3YmRlYTM2ZjQ3NDZmNjAwNTBkLi5kNWEyOTUzMTMw
NjlhMTA4OTg4MDliM2IzZDUwNjg2MmZmMmY2ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYg
QEAKKzIwMTItMDktMjAgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgTXV0YXRpb25PYnNlcnZlcnMgc2hvdWxkIG5vdCBjcmVhdGUgY2lyY3VsYXIsIGxl
YWt5IHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkzNjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIFY4RGVwZW5kZW50UmV0YWluZWQgYW5kIEpTRGVwZW5kZW50UmV0YWluZWQgdG8g
Zml4IHRoZSBtZW1vcnkgbGVha3MgaW4gTXV0YXRpb25PYnNlcnZlciB3aGVuCisgICAgICAgIGNy
ZWF0aW5nIGNpcmN1bGFyIHJlZmVyZW5jZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BT
ISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBGb3J3YXJk
aW5nSGVhZGVycy9ydW50aW1lL1ByaXZhdGVOYW1lLmg6IEFkZGVkLgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0Mu
Y21ha2U6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVwZW5kZW50UmV0
YWluZWQuaDogRml4IGJyb2tlbiBjb21waWxlLiBUaGUgdXNhZ2Ugb2YgcHV0RGlyZWN0IGFuZCBy
ZW1vdmVEaXJlY3Qgd2FzIHdyb25nLgorICAgICAgICAoV2ViQ29yZTo6SlNEZXBlbmRlbnRSZXRh
aW5lZDo6SlNEZXBlbmRlbnRSZXRhaW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcGVuZGVu
dFJldGFpbmVkOjpyZXRhaW4pOgorICAgICAgICAoV2ViQ29yZTo6SlNEZXBlbmRlbnRSZXRhaW5l
ZDo6cmVsZWFzZSk6CisgICAgICAgIChKU0RlcGVuZGVudFJldGFpbmVkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbkNhbGxiYWNrOjpKU011dGF0
aW9uQ2FsbGJhY2spOiBJbXBsZW1lbnRhdGlvbiBvZiB3aGF0IHdhcyBwcmV2aW91c2x5IGdlbmVy
YXRlZCBmcm9tIHRoZSBJREwuCisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6
OmNhbGwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oOgorICAg
ICAgICAoSlNNdXRhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25D
YWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6
c2V0T3duZXIpOiBTZXQgdGhlIEdDIG93bmVyLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU011dGF0aW9u
T2JzZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aW52b2tlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q2Fs
bGJhY2suaDogQ2hhbmdlIGludm9rZUNhbGxiYWNrIHRvIHRha2UgYSB2ODo6SGFuZGxlIGluc3Rl
YWQgb2YgYSB2ODo6TG9jYWwuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOERlcGVuZGVudFJldGFpbmVkLmg6CisgICAgICAgIChXZWJDb3JlOjpWOERlcGVuZGVu
dFJldGFpbmVkOjpWOERlcGVuZGVudFJldGFpbmVkKTogRml4IGJyb2tlbiBjb21waWxlIHdpdGgg
YXNzaWdubWVudCB0byBtX293bmVyIHRoYXQgc2hvdWxkIGhhdmUgdXNlZCBzZXQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlY4RGVwZW5kZW50UmV0YWluZWQ6OnJldGFpbik6CisgICAgICAgIChXZWJD
b3JlOjpWOERlcGVuZGVudFJldGFpbmVkOjp3ZWFrQ2FsbGJhY2spOiBJdCB3YXMgd3JvbmcgdG8g
aGF2ZSB0d28gY2FsbGJhY2tzLiBWOCBtYXkgY2FsbCB0aGVzZSBvdXQgb2Ygb3JkZXIgb24gc2h1
dGRvd24uCisgICAgICAgICogYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxs
YmFjazo6VjhNdXRhdGlvbkNhbGxiYWNrKTogSW1wbGVtZW50YXRpb24gb2Ygd2hhdCB3YXMgcHJl
dmlvdXNseSBnZW5lcmF0ZWQgZnJvbSB0aGUgSURMLgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRh
dGlvbkNhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2Fs
bGJhY2suaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVjhNdXRhdGlvbkNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25PYnNlcnZlcjo6Y29uc3RydWN0
b3JDYWxsYmFjayk6CisgICAgICAgICogZG9tL011dGF0aW9uQ2FsbGJhY2suaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoTXV0YXRpb25DYWxsYmFjayk6CisgICAgICAgICogZG9tL011
dGF0aW9uQ2FsbGJhY2suaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcDogTWFkZSBpbnRvIGFuIEFjdGl2ZURPTU9iamVjdCB0byBwcmV2ZW50IHRoZSB3cmFw
cGVycyBmcm9tIGJlaW5nIGNvbGxlY3RlZCBzbyB0aGV5J3JlIGFjY2Vzc2libGUgaW4gY2FsbGJh
Y2tzLgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uRW5kZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcik6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9NdXRh
dGlvbk9ic2VydmVyLmlkbDoKKwogMjAxMi0wOS0xOCAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJh
cnRvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU2V0IGZvY3VzIG9u
IHRoZSBFeHRlbnNpb25QYW5lbCdzIGlmcmFtZSB3aGVuIGl0IGlzIHNlbGVjdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA4YjUyOTE1YjZlYzI5NjdiNDhm
MTdmYmZjODQwZTBmNmIzMjQwOGVmLi42MzI0MDYzMTM0NWFhOWM4MzMxNzkzNGU3MzZhY2E2NGY1
YjEyZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTQz
MCw3ICs0MzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIHRyYW5zaXRpb25U
byhKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKIAotICAgICAgICBib29sIHJlbW92ZURpcmVj
dChKU0dsb2JhbERhdGEmLCBQcm9wZXJ0eU5hbWUpOyAvLyBSZXR1cm4gdHJ1ZSBpZiBhbnl0aGlu
ZyBpcyByZW1vdmVkLgorICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHJlbW92ZURpcmVj
dChKU0dsb2JhbERhdGEmLCBQcm9wZXJ0eU5hbWUpOyAvLyBSZXR1cm4gdHJ1ZSBpZiBhbnl0aGlu
ZyBpcyByZW1vdmVkLgogICAgICAgICBib29sIGhhc0N1c3RvbVByb3BlcnRpZXMoKSB7IHJldHVy
biBzdHJ1Y3R1cmUoKS0+ZGlkVHJhbnNpdGlvbigpOyB9CiAgICAgICAgIGJvb2wgaGFzR2V0dGVy
U2V0dGVyUHJvcGVydGllcygpIHsgcmV0dXJuIHN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQ
cm9wZXJ0aWVzKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNzRiYTJkMjhmN2I0ODUy
Njc2MDg2MGE4Yzk3ZTAxMmEwNTRhNDI3Li40YWE4NTIzYmRlNGJlNTE1YWZjMzY2OWE1MmE1NWE3
N2RhMjIxNDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzY0LDcgKzM2NCw2IEBAIFNFVChX
ZWJDb3JlX0lETF9GSUxFUwogICAgIGRvbS9NZXNzYWdlRXZlbnQuaWRsCiAgICAgZG9tL01lc3Nh
Z2VQb3J0LmlkbAogICAgIGRvbS9Nb3VzZUV2ZW50LmlkbAotICAgIGRvbS9NdXRhdGlvbkNhbGxi
YWNrLmlkbAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmlkbAogICAgIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyLmlkbAogICAgIGRvbS9NdXRhdGlvblJlY29yZC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAppbmRleCBmMDBkNTU2OGI5MDE1Nzc5NTc1YTczY2IwNmJmNzdkZmQzNzE1M2M3Li41YmYx
NmZkYmRmNTk1NWIyMjJlZTVlZGZjNjY0NDBjZGJmYWU2ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCkBAIC0yNTIsNyArMjUyLDYgQEAKICNpbmNsdWRlICJKU01ldGFkYXRhLmNwcCIK
ICNpbmNsdWRlICJKU01ldGFkYXRhQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTW91c2VFdmVu
dC5jcHAiCi0jaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU011
dGF0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5jcHAiCiAjaW5j
bHVkZSAiSlNNdXRhdGlvblJlY29yZC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCBkMWYwOTcyY2QxNzk4OTJmYzU0Yjg5ZTU2YWVjMWVlZTNiZTMzY2Q1Li43ZmU0ZmUyZWM1
NzJiODYxOWM0NGY2MWNlNDA3NDA5NDI4OTQyMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTIzMiw3ICsyMzIsNiBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9kb20vTWVzc2FnZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTWVzc2FnZVBvcnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9u
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25SZWNvcmQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iOGQ0YjRkZTMwMDM1YzNjNDkxNmE4ZmNkNDljNjU0MWI2ZjQxZmM3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Qcml2YXRl
TmFtZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9Qcml2YXRlTmFtZV9o
CisjZGVmaW5lIFdlYkNvcmVfRldEX1ByaXZhdGVOYW1lX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Qcml2YXRlTmFtZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjYTZkYWJjZjUxNDQyNjFiNDA5NzZkNWEwOWFjYTcyYWUzYzg4NDU2Li4xODQ0MTNlNzVj
Y2JlZGJhNzIxMGZjNTA2MzkxOTk5MjlmMjc5NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTUzOSw4ICs1MzksNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTW91c2VFdmVudC5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxs
YmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKQEAgLTEzNTYsNyArMTM1NCw2IEBAIGRvbV9i
aW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL01lc3NhZ2VFdmVudC5pZGwgXAogCSQo
V2ViQ29yZSkvZG9tL01lc3NhZ2VQb3J0LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTW91c2VFdmVu
dC5pZGwgXAotCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNv
cmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNl
cnZlci5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCkBAIC0yMzMx
LDcgKzIzMjgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAyY2NhMjFlOTQyNzZjZjFhYTdi
NTgzZWFmMDVlNjY4ZmMyOWQ5N2NmLi5kNDc3YjdjNDJjMjgyNDZmZDI3MzM5OGUxOTAzNjgwOWU3
ZGMxYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTE2MCw3ICsxNjAsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9q
cy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAogICAgICBiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAgXAotICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwIFwKKyAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCiAg
ICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICBiaW5k
aW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQppbmRleCAzZTYwYTNlODgxZjM2MDliZmM0NDNh
YTkyYWQwNWJhZGQ1MDYyMjQwLi43NWIyZmM4ZTlhYmJmZjY1YTU4ZDFkYzdjNGJjZTVhMjg3ZGY3
ODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xMTEsNyArMTExLDcgQEAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9u
Q2FsbGJhY2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1VzZVY4LmNtYWtlCmluZGV4IDVjZDQyYzgwM2VkNjdkY2VkZjZlNjVmODJlZWMw
ZDk5MGMxMDcxMjAuLjcxMjAyZWFlNjM2NzE0ZGNiZmIzMTg0YzMzNGFlZTljNzNiMTJhNTEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1VzZVY4LmNtYWtlCkBAIC0xMzAsNyArMTMwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxl
Y3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDZmZjc3NTc1NmQ1NzczY2Y1NjMyZGQyMzBl
MTNmMWE4MTAxYTIzNi4uOTFhMTA0ZjE4MDAwODQ0ODg1NmMxYzQ1ZTJjMzI1M2ZjNjQ2MDZiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTAwNSw3ICsxMDA1LDYgQEAKICAgICAgICAgICAgICdkb20v
TWVzc2FnZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VQb3J0LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuaWRsJywKLSAgICAgICAgICAgICdkb20vTXV0YXRp
b25DYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsJywKICAgICAgICAgICAgICdkb20v
TXV0YXRpb25SZWNvcmQuaWRsJywKQEAgLTIwOTAsNyArMjA4OSw4IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOYW1lZE5vZGVN
YXBDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
JywKQEAgLTIyMTUsNiArMjIxNSw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvSW50cnVz
aXZlRE9NV3JhcHBlck1hcC5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9KYXZhU2NyaXB0
Q2FsbEZyYW1lLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxG
cmFtZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvTlBPYmplY3RXcmFwcGVyLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvTlBPYmplY3RXcmFwcGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L05QVjhPYmplY3QuY3BwJywKQEAgLTI0MDUsNyArMjQwNyw2IEBACiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKLSAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1h
cEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9k
ZXNDb2xsZWN0aW9uLmNwcCcsCkBAIC03NzQxLDggKzc3NDIsNiBAQAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXRhZGF0YUNhbGxiYWNrLmgn
LAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
b3VzZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suY3BwJywKLSAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxs
YmFjay5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmgnLAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDE4OTZhMTE5ZGMyZmY5ODgxMWIyMzU4NTFkZTMyZjBkMDRjMzVhNmMuLjM1MjBmYmQxZjI4NDFh
N2NiNjExZjc2ODAzNzkwOTYzMWFjNzYzYzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xMTU5NCw2MiArMTE1OTQsNiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25DYWxsYmFj
ay5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxiYWNrLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkV2ZW50LmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCkBAIC02OTM1MCw3ICs2OTI5NCwxMSBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNN
dXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU011dGF0aW9uQ2FsbGJhY2suaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5j
cHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyMGRiOGY0NDQxNGNlYWVhNGNmNThkZTMxMTRjYjdjMWRiNzc4NTJiLi44ZGFh
OTFjZmQ2YzkyMTY5NGUyMTFhOTEzMmVjMDJhYzhjZmVmZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODQ0LDEyICs1ODQ0
LDkgQEAKIAkJQzZGMDkwMEExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDAxMTQz
MjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJCUM2RjA5MDBFMTQz
MjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBN
dXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsKIAkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1ODQ5IC8q
IE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzZGMDkw
MjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyMDE0MzI3RDRGMDA2ODU4
NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsKLQkJQzZGMDkwMjkxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFjay5oICovOyB9OwogCQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
ICovOyB9OwogCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAy
NTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi87IH07CiAJCUM2RjA5
MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxN0UxNDNBMkJC
OTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07Ci0JCUM2RjA5
MTg1MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxODQxNDNBNkMz
QjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi87IH07CiAJCUM2RjQx
MDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVu
dHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxB
bmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovOyB9Owog
CQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUwMEU2
Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTYzLDYgKzY1NjAsOCBAQAogCQlGRkQ1Qjk3QTEzNUNDOTc4
MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRkQ1Qjk3NzEzNUNDOTc4MDBENUU5MkEgLyogUGFn
ZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi87IH07CiAJCUZGRDVCOTdCMTM1Q0M5NzgwMEQ1RTkyQSAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRkQ1Qjk3ODEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlT
dGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZGRDg2RTc4MTVGOTU4MzYwMDA0NzIzMyAvKiBKU0RlcGVuZGVudFJldGFpbmVkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRkQ4NkU3NzE1Rjk1ODM2
MDAwNDcyMzMgLyogSlNEZXBlbmRlbnRSZXRhaW5lZC5oICovOyB9OworCQlGRkQ4NkVCQTE2MEE5
Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDg2RUI4MTYwQTlCOTcwMDA0NzIzMyAvKiBK
U011dGF0aW9uQ2FsbGJhY2suY3BwICovOyB9OworCQlGRkQ4NkVCQjE2MEE5Qjk3MDAwNDcyMzMg
LyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRkQ4NkVCOTE2MEE5Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxi
YWNrLmggKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4g
UEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTEzMTc3LDE2ICsxMzE3NiwxMiBA
QAogCQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uUmVjb3JkLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25SZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNN
dXRhdGlvblJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwMTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUM2RjA5MDAyMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNdXRhdGlvbkNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2Jz
ZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTXV0YXRpb25P
YnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDA2MTQzMjdC
NjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25D
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDIxMTQzMjdE
NEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU011dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTE4NDE0M0E2QzNC
MDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRy
eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNl
LmNwcDsgcGF0aCA9IE1vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5p
bWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5p
bWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3RDEwRDk5QkFF
MDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDEwLDYgKzE0MDA1LDggQEAKIAkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNp
YmlsaXR5U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFn
ZVZpc2liaWxpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZGRDVC
OTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkZEODZFNzcxNUY5NTgzNjAwMDQ3MjMzIC8qIEpTRGVwZW5kZW50
UmV0YWluZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEZXBlbmRlbnRS
ZXRhaW5lZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRkQ4NkVCODE2MEE5Qjk3
MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUZGRDg2RUI5MTYwQTlCOTcwMDA0NzIzMyAvKiBKU011dGF0aW9uQ2FsbGJh
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBz
ZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
QEAgLTE4OTYyLDggKzE4OTU5LDYgQEAKIAkJCQlGRTgwREE2MDBFOUM0NzAzMDAwRDZGNzUgLyog
SlNHZW9sb2NhdGlvbi5oICovLAogCQkJCUZFODBEQTYxMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dl
b3Bvc2l0aW9uLmNwcCAqLywKIAkJCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9w
b3NpdGlvbi5oICovLAotCQkJCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9u
Q2FsbGJhY2suY3BwICovLAotCQkJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0
aW9uQ2FsbGJhY2suaCAqLywKIAkJCQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNN
dXRhdGlvbk9ic2VydmVyLmggKi8sCiAJCQkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25SZWNvcmQuY3BwICovLApAQCAtMjAxOTcsNiArMjAxOTIsOCBAQAogCQkJCTQ5QjM3
NjBCMTVDNkM2ODQwMDU5MTMxRCAvKiBBcnJheVZhbHVlLmggKi8sCiAJCQkJOTczQUEzRjIxNUQw
ODhGMDAwRTM4QTg1IC8qIEJpbmRpbmdTdGF0ZS5jcHAgKi8sCiAJCQkJOTczQUEzRjMxNUQwODhG
MDAwRTM4QTg1IC8qIEJpbmRpbmdTdGF0ZS5oICovLAorCQkJCUZGRDg2RUI4MTYwQTlCOTcwMDA0
NzIzMyAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovLAorCQkJCUZGRDg2RUI5MTYwQTlCOTcw
MDA0NzIzMyAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5
MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKIAkJCQk5M0Y4QjMw
NjBBMzAwRkVBMDBGNjFBQjggLyogQ29kZUdlbmVyYXRvckpTLnBtICovLAogCQkJCTMxMkQ2N0Iw
MTUzNTY5MUYwMDU2M0QwRCAvKiBEaWN0aW9uYXJ5LmNwcCAqLywKQEAgLTIwNDE4LDcgKzIwNDE1
LDYgQEAKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAgKi8sCiAJCQkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRD
dXN0b20uaCAqLywKIAkJCQkxMDU5NDU3MjE1QjQyOTUzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJ
dGVtVmFsdWVDdXN0b20uY3BwICovLAotCQkJCUM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBK
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovLAogCQkJCUM2RjA5MTdFMTQzQTJCQjkwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVGMEMx
N0FBNjcwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMy
NjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8sCkBAIC0yMTc4NSw3ICsy
MTc4MSw2IEBACiAJCQkJODUwMzFCMzEwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlUmVsYXRlZEV2
ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzMjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxhdGVk
RXZlbnQuaCAqLywKIAkJCQlDNkYwOTAwMTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxs
YmFjay5oICovLAotCQkJCUM2RjA5MDAyMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxi
YWNrLmlkbCAqLywKIAkJCQk4NTAzMUIzMzBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVu
dC5jcHAgKi8sCiAJCQkJODUwMzFCMzQwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQu
aCAqLywKIAkJCQk5M0VFQzFGMzA5QzI4Nzc3MDBDNTE1RDEgLyogTXV0YXRpb25FdmVudC5pZGwg
Ki8sCkBAIC0yNDA5Myw3ICsyNDA4OCw3IEBACiAJCQkJODk4Nzg1QjkxMjJDQTJBNzAwM0FBQkRB
IC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTA1OTQ1N0ExNUI0
MkE0MzAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAq
LywKLQkJCQlDNkYwOTAyOTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGRkQ4NkVCQjE2MEE5Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlv
bkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzFGQzA5RDFDQzYwMDAwQkUzMjUg
LyogSlNNdXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAyRDE0MzI3RDRG
MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYw
OEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzM2Nyw4ICsyNzM2Miw3IEBACiAJCQkJMTA1OTQ1NzcxNUI0MkEwRDAwNEQzN0ZEIC8q
IEpTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTEwNTk0NTczMTVC
NDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODY2MjlEMjA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUM2RjA5MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9u
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRkQ4
NkVCQTE2MEE5Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTY1REYzMUZCMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4
NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXgg
MzM2MTliNTM1Zjc0MTg1ZTdkMDQ4YTc4NmVlOWRjOThhZDkzMDQ5ZC4uZGMyZDhiZDM2NTE1Mjlk
MDM4MTA2MjQ0OTYzOWU1OThhYzcyODUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAKICNpbmNs
dWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIgotI2lu
Y2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNNdXRhdGlv
bkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVDdXN0
b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXBlbmRl
bnRSZXRhaW5lZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXBlbmRlbnRSZXRh
aW5lZC5oCmluZGV4IGZjNGU4ZjMxZjNlNGY2ZmJmODAwYzJiZmJmMWE5MzQ2ODk2MjQzMTAuLjE1
NzI0ZjljMWQ1MjI5ZjVkODY5OTQ0ZjFhZGUwMzg0MWI2OGJkODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwZW5kZW50UmV0YWluZWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcGVuZGVudFJldGFpbmVkLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNpZm5kZWYgSlNEZXBlbmRlbnRSZXRhaW5lZF9oCiAjZGVmaW5lIEpTRGVwZW5kZW50UmV0
YWluZWRfaAogCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlIDxoZWFw
L1dlYWsuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Qcml2YXRlTmFtZS5oPgpAQCAtMzYsOCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEpTRGVwZW5kZW50UmV0YWluZWQgewogcHVibGljOgotICAgIEpTRGVwZW5kZW50UmV0
YWluZWQoSlNDOjpKU09iamVjdCogb3duZXIsIEpTQzo6SlNPYmplY3QqIHZhbHVlKQorICAgIEpT
RGVwZW5kZW50UmV0YWluZWQoSlNDOjpKU09iamVjdCogb3duZXIsIEpTQzo6SlNPYmplY3QqIHZh
bHVlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICA6IG1fdmFsdWUo
dmFsdWUpCisgICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRh
KCksIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAgICAg
IGlmIChvd25lcikKQEAgLTY0LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoIW1f
b3duZXIgJiYgb3duZXIpOwogICAgICAgICBBU1NFUlQobV92YWx1ZSk7CiAgICAgICAgIG1fb3du
ZXIgPSBKU0M6OlBhc3NXZWFrPEpTQzo6SlNPYmplY3Q+KG93bmVyKTsKLSAgICAgICAgbV9vd25l
ci0+cHV0RGlyZWN0KG1fcHJvcGVydHlOYW1lLCBnZXQoKSk7CisgICAgICAgIG1fb3duZXItPnB1
dERpcmVjdChtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBtX3Byb3BlcnR5TmFtZSwgZ2V0
KCkpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTcyLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlbGVhc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fb3duZXIpCi0gICAgICAgICAgICBt
X293bmVyLT5yZW1vdmVEaXJlY3QobV9wcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgbV9vd25l
ci0+cmVtb3ZlRGlyZWN0KG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIG1fcHJvcGVydHlO
YW1lKTsKICAgICAgICAgbV92YWx1ZS5jbGVhcigpOwogICAgICAgICBtX293bmVyLmNsZWFyKCk7
CiAgICAgfQpAQCAtODAsNiArODIsNyBAQCBwcml2YXRlOgogICAgIEpTQzo6V2VhazxKU0M6OkpT
T2JqZWN0PiBtX293bmVyOwogICAgIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX3ZhbHVlOwog
ICAgIEpTQzo6UHJpdmF0ZU5hbWUgbV9wcm9wZXJ0eU5hbWU7CisgICAgSlNDOjpTdHJvbmc8SlNE
T01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFj
ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzI0N2RkODFiOWU5ZWQyN2IyYmM5MGQ1MzY0YjEzMjA5NGMyY2I3
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFjay5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJh
Y2suaCIKKworI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCisjaW5jbHVkZSAiSlNET01XaW5k
b3dCYXNlLmgiCisjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSlNN
dXRhdGlvblJlY29yZC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0pTTXV0YXRpb25DYWxsYmFjazo6SlNNdXRhdGlvbkNhbGxiYWNr
KEpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAg
ICA6IEFjdGl2ZURPTUNhbGxiYWNrKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQorICAgICwgbV9jYWxsYmFjaygwLCBjYWxsYmFjaywgZ2xvYmFsT2JqZWN0KQorICAgICwg
bV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCkK
K3sKK30KKworYm9vbCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwoY29uc3QgVmVjdG9yPFJlZlB0
cjxNdXRhdGlvblJlY29yZD4gPiYgbXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZl
cikKK3sKKyAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgUmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKKworICAg
IEpTQ2FsbGJhY2tEYXRhIGRhdGEobV9jYWxsYmFjay5nZXQoKSwgbV9nbG9iYWxPYmplY3QuZ2V0
KCkpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0ds
b2JhbERhdGEoKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBkYXRhLmdsb2JhbE9iamVjdCgp
LT5nbG9iYWxFeGVjKCk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBtdXRhdGlvbkxpc3Q7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMuc2l6ZSgpOyArK2kpCisgICAg
ICAgIG11dGF0aW9uTGlzdC5hcHBlbmQodG9KUyhleGVjLCBkYXRhLmdsb2JhbE9iamVjdCgpLCBt
dXRhdGlvbnMuYXQoaSkuZ2V0KCkpKTsKKworICAgIEpTVmFsdWUganNPYnNlcnZlciA9IHRvSlMo
ZXhlYywgZGF0YS5nbG9iYWxPYmplY3QoKSwgb2JzZXJ2ZXIpOworCisgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RBcnJheShleGVjLCBkYXRh
Lmdsb2JhbE9iamVjdCgpLCBtdXRhdGlvbkxpc3QpKTsKKyAgICBhcmdzLmFwcGVuZChqc09ic2Vy
dmVyKTsKKworICAgIGJvb2wgcmFpc2VkRXhjZXB0aW9uID0gZmFsc2U7CisgICAgZGF0YS5pbnZv
a2VDYWxsYmFjayhqc09ic2VydmVyLCBhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsKKyAgICByZXR1
cm4gIXJhaXNlZEV4Y2VwdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwYTZkYjYwYjYxYzgy
NDU0ZjM5YWRiM2IxMzVjOGYyMjAzNGFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisjaWZuZGVmIEpTTXV0YXRpb25DYWxsYmFja19oCisjZGVmaW5lIEpTTXV0YXRpb25D
YWxsYmFja19oCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTRGVwZW5kZW50UmV0YWluZWQuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkNhbGxiYWNr
LmgiCisjaW5jbHVkZSA8cnVudGltZS9KU09iamVjdC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEpTTXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJsaWMgQWN0
aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTTXV0YXRp
b25DYWxsYmFjaz4gY3JlYXRlKEpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNNdXRh
dGlvbkNhbGxiYWNrKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTsKKyAgICB9CisgICAgdmlydHVh
bCBib29sIGNhbGwoY29uc3QgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4gPiYsIE11dGF0
aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKworICAgIHZvaWQgc2V0T3duZXIoSlNPYmplY3QqIG9i
c2VydmVyKSB7IG1fY2FsbGJhY2sucmV0YWluKG9ic2VydmVyKTsgfQorCisgcHJpdmF0ZToKKyAg
ICBKU011dGF0aW9uQ2FsbGJhY2soSlNPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCopOworCisg
ICAgSlNEZXBlbmRlbnRSZXRhaW5lZCBtX2NhbGxiYWNrOworICAgIEpTQzo6U3Ryb25nPEpTRE9N
R2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNkZTdiNzk0NmFlMWM2ZGNmOTc1
MzhjN2IyYWQzNTk2NGRkMDQ4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJKU011dGF0
aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgotI2luY2x1ZGUg
IkpTTXV0YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKLSNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9KU0xv
Y2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1i
b29sIEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSog
bXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBpZiAoIWNhbklu
dm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgUmVmUHRyPEpTTXV0
YXRpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQotICAgIEpTTG9ja0hvbGRlciBsb2NrKEpT
RE9NV2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotCi0gICAgRXhlY1N0YXRlKiBl
eGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwotCi0gICAgTWFya2Vk
QXJndW1lbnRCdWZmZXIgbXV0YXRpb25MaXN0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bXV0YXRpb25zLT5zaXplKCk7ICsraSkKLSAgICAgICAgbXV0YXRpb25MaXN0LmFwcGVuZCh0b0pT
KGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCksIG11dGF0aW9ucy0+YXQoaSkuZ2V0KCkpKTsK
LQotICAgIEpTVmFsdWUganNPYnNlcnZlciA9IHRvSlMoZXhlYywgbV9kYXRhLT5nbG9iYWxPYmpl
Y3QoKSwgb2JzZXJ2ZXIpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBh
cmdzLmFwcGVuZChjb25zdHJ1Y3RBcnJheShleGVjLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBt
dXRhdGlvbkxpc3QpKTsKLSAgICBhcmdzLmFwcGVuZChqc09ic2VydmVyKTsKLQotICAgIGJvb2wg
cmFpc2VkRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhqc09i
c2VydmVyLCBhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsKLSAgICByZXR1cm4gIXJhaXNlZEV4Y2Vw
dGlvbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IGFiNTU2MGQ4MGNjOTdjNDMwMWM3
ZjUwYWUxNDA4NDE3ZmUwY2IwYjIuLmYwMzhhNWQ1OGI1MzAwM2FmNDE4YTFmZTg0MGZmMjRlOTVm
ZmU1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25P
YnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtNTQsOCArNTQsMTQgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNN
dXRhdGlvbk8KICAgICB9CiAKICAgICBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvcioganND
b25zdHJ1Y3RvciA9IGpzQ2FzdDxKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcio+KGV4ZWMt
PmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBKU011
dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVj
dCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganND
b25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxs
YmFjay5yZWxlYXNlKCkpKSkpOworCisgICAgUmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4gY2Fs
bGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3RydWN0b3It
Pmdsb2JhbE9iamVjdCgpKTsKKyAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIg
PSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2ssIGpzQ29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworCisgICAgSlNPYmplY3QqIHdy
YXBwZXIgPSBhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgp
LCBvYnNlcnZlci5yZWxlYXNlKCkpKTsKKyAgICBjYWxsYmFjay0+c2V0T3duZXIod3JhcHBlcik7
CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHdyYXBwZXIpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENh
bGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwCmlu
ZGV4IDU0ZjU3MmE1NWYwOTI2NTliNjlmMTJkNDhlYjJmNDI5ZmFiYmYwMTEuLjJlMjUwNjExNDEz
ZGY3YzM2YTViMGQ2NjliMDUxMjE1YmYyNmE4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q2FsbGJhY2suY3BwCkBAIC0zNiwxOSArMzYsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1ib29sIGludm9rZUNhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNh
bGxiYWNrLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2Fs
bGJhY2tSZXR1cm5WYWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxs
YmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxi
YWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpCiB7CiAgICAgcmV0dXJuIGludm9rZUNhbGxiYWNrKGNhbGxiYWNrLCB2ODo6Q29udGV4
dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKSwgYXJnYywgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1
ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiB9CiAKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
dGhpc09iamVjdCwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wm
IGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpCitib29sIGludm9rZUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
Y2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhpc09iamVjdCwgaW50IGFyZ2MsIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7CiAgICAgdjg6
OlRyeUNhdGNoIGV4Y2VwdGlvbkNhdGNoZXI7CiAgICAgZXhjZXB0aW9uQ2F0Y2hlci5TZXRWZXJi
b3NlKHRydWUpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2FsbGJhY2tGdW5jdGlv
bjsKICAgICBpZiAoY2FsbGJhY2stPklzRnVuY3Rpb24oKSkgewotICAgICAgICBjYWxsYmFja0Z1
bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46Ok5ldyh2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb24+OjpDYXN0KGNhbGxiYWNrKSk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24gPSB2
ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6TmV3KHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPjo6Q2Fz
dChjYWxsYmFjaykpOwogICAgIH0gZWxzZSBpZiAoY2FsbGJhY2stPklzT2JqZWN0KCkpIHsKICAg
ICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gaGFuZGxlRXZlbnRGdW5jdGlvbiA9IGNhbGxiYWNr
LT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJoYW5kbGVFdmVudCIpKTsKICAgICAgICAgaWYg
KGhhbmRsZUV2ZW50RnVuY3Rpb24tPklzRnVuY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q2FsbGJhY2suaAppbmRleCBmZWUxOGIxMzAzODAyM2UxNGNlYTE4MGRjMDViMzU1MDlh
YjcwYWIwLi41ZmI1NzEwNGM3OWE3N2NhMjkwMjk2YjBhZWYyMDYyN2M2ZWEyNGRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDYWxsYmFjay5oCkBAIC0zOSw4ICszOSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotYm9vbCBp
bnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFy
Z2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFs
dWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhp
c09iamVjdCwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNh
bGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKK2Jvb2wgaW52b2tl
Q2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBjYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB0aGlzT2JqZWN0LCBpbnQg
YXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5W
YWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBlbnVtIENhbGxiYWNrQWxsb3dlZFZh
bHVlRmxhZyB7CiAgICAgQ2FsbGJhY2tBbGxvd1VuZGVmaW5lZCA9IDEsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERlcGVuZGVudFJldGFpbmVkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERlcGVuZGVudFJldGFpbmVkLmgKaW5kZXggZDc4NzYxMjUy
YTM5MGI3YmVmMTVlYWFkNjNkMDc4ODFlOThjOTc4Ny4uNjI3NzAwYmFjYTY4NzE2MWJjNTNlYmU2
Njc3OTczNjBjNzIyMGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhEZXBlbmRlbnRSZXRhaW5lZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RGVwZW5kZW50UmV0YWluZWQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL2R0b2Eu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDQsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9wcm9wZXJ0eU5h
bWUoY3JlYXRlUHJvcGVydHlOYW1lKCkpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fdmFsdWUu
aXNFbXB0eSgpKTsKLSAgICAgICAgbV92YWx1ZS5nZXQoKS5NYWtlV2Vhayh0aGlzLCAmVjhEZXBl
bmRlbnRSZXRhaW5lZDo6dmFsdWVXZWFrQ2FsbGJhY2spOworICAgICAgICBtX3ZhbHVlLmdldCgp
Lk1ha2VXZWFrKHRoaXMsICZWOERlcGVuZGVudFJldGFpbmVkOjp3ZWFrQ2FsbGJhY2spOwogICAg
ICAgICBpZiAoIW93bmVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldGFpbihvd25lcik7CiAg
ICAgfQpAQCAtNjksOCArNzAsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX293bmVyLmlz
RW1wdHkoKSAmJiAhb3duZXIuSXNFbXB0eSgpKTsKICAgICAgICAgQVNTRVJUKCFtX3ZhbHVlLmlz
RW1wdHkoKSk7CiAgICAgICAgIG93bmVyLT5TZXRIaWRkZW5WYWx1ZShtX3Byb3BlcnR5TmFtZS5n
ZXQoKSwgZ2V0KCkpOwotICAgICAgICBtX293bmVyID0gb3duZXI7Ci0gICAgICAgIG1fb3duZXIu
Z2V0KCkuTWFrZVdlYWsodGhpcywgJlY4RGVwZW5kZW50UmV0YWluZWQ6Om93bmVyV2Vha0NhbGxi
YWNrKTsKKyAgICAgICAgbV9vd25lci5zZXQob3duZXIpOworICAgICAgICBtX293bmVyLmdldCgp
Lk1ha2VXZWFrKHRoaXMsICZWOERlcGVuZGVudFJldGFpbmVkOjp3ZWFrQ2FsbGJhY2spOwogICAg
IH0KIAogcHJpdmF0ZToKQEAgLTgyLDE5ICs4MywxMiBAQCBwcml2YXRlOgogICAgICAgICByZXR1
cm4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4obmFtZS5jaGFyYWN0ZXJzOCgpKSwgbmFtZS5sZW5ndGgoKSwgTmV3
U3RyaW5nKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCBvd25lcldlYWtDYWxsYmFjayh2ODo6
UGVyc2lzdGVudDx2ODo6VmFsdWU+IG9iamVjdCwgdm9pZCogcGFyYW1ldGVyKQorICAgIHN0YXRp
YyB2b2lkIHdlYWtDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IG9iamVjdCwgdm9p
ZCogcGFyYW1ldGVyKQogICAgIHsKICAgICAgICAgVjhEZXBlbmRlbnRSZXRhaW5lZCogdmFsdWUg
PSBzdGF0aWNfY2FzdDxWOERlcGVuZGVudFJldGFpbmVkKj4ocGFyYW1ldGVyKTsKICAgICAgICAg
dmFsdWUtPnJlbGVhc2UoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCB2YWx1ZVdlYWtDYWxs
YmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IG9iamVjdCwgdm9pZCogcGFyYW1ldGVyKQot
ICAgIHsKLSAgICAgICAgVjhEZXBlbmRlbnRSZXRhaW5lZCogdmFsdWUgPSBzdGF0aWNfY2FzdDxW
OERlcGVuZGVudFJldGFpbmVkKj4ocGFyYW1ldGVyKTsKLSAgICAgICAgLy8gVGhlIG93bmVyIGNh
bGxiYWNrIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGZpcnN0LCBzaW5jZSBpdCByZXRhaW5zIHRo
ZSB2YWx1ZS4KLSAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUtPmlzRW1wdHkoKSk7
Ci0gICAgfQotCiAgICAgdm9pZCByZWxlYXNlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9vd25l
ci5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11
dGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlv
bkNhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzU2OTM5ZTUyODE3MDdjN2ZhNTIzYzczMjM5MTA1
OWVjYjdiOTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhNdXRhdGlvbkNhbGxiYWNrLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5j
bHVkZSAiVjhNdXRhdGlvbkNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlY4TXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIlY4TXV0YXRpb25S
ZWNvcmQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWOE11dGF0aW9uQ2FsbGJhY2s6OlY4TXV0YXRp
b25DYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9ic2VydmVyLCB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAg
IDogQWN0aXZlRE9NQ2FsbGJhY2soY29udGV4dCkKKyAgICAsIG1fY2FsbGJhY2sob2JzZXJ2ZXIs
IGNhbGxiYWNrKQorICAgICwgbV93b3JsZENvbnRleHQoVXNlQ3VycmVudFdvcmxkKQoreworfQor
Citib29sIFY4TXV0YXRpb25DYWxsYmFjazo6Y2FsbChjb25zdCBWZWN0b3I8UmVmUHRyPE11dGF0
aW9uUmVjb3JkPiA+JiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQorewor
ICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1f
d29ybGRDb250ZXh0KTsKKyAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKKwor
ICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IG11dGF0aW9uc0FycmF5ID0gdjg6OkFycmF5OjpOZXco
bXV0YXRpb25zLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMu
c2l6ZSgpOyArK2kpCisgICAgICAgIG11dGF0aW9uc0FycmF5LT5TZXQodjhJbnRlZ2VyKGkpLCB0
b1Y4KG11dGF0aW9ucy5hdChpKS5nZXQoKSkpOworCisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZlcik7CisgICAgaWYgKG9ic2VydmVySGFuZGxl
LklzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWlzU2NyaXB0Q29udHJvbGxlclRlcm1pbmF0aW5n
KCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBpZiAoIW9ic2VydmVySGFuZGxlLT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10gPSB7CisgICAgICAgIG11dGF0
aW9uc0FycmF5LAorICAgICAgICBvYnNlcnZlckhhbmRsZQorICAgIH07CisKKyAgICBBU1NFUlQo
IW1fY2FsbGJhY2suaXNFbXB0eSgpKTsKKworICAgIGJvb2wgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9
IGZhbHNlOworICAgIHJldHVybiAhaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjay5nZXQoKSwgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChvYnNlcnZlckhhbmRsZSksIDIsIGFyZ3YsIGNhbGxi
YWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYxOWYzNTRmY2RhZmMyMTEyZmI0MWNiOGMzOGVkMTZkNzA0ZjZiZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2su
aApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCisKKyNpZm5kZWYgVjhNdXRhdGlvbkNhbGxiYWNrX2gKKyNkZWZpbmUgVjhNdXRhdGlvbkNh
bGxiYWNrX2gKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTXV0
YXRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4RGVwZW5kZW50UmV0YWluZWQuaCIKKyNpbmNs
dWRlICJXb3JsZENvbnRleHRIYW5kbGUuaCIKKyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgVjhNdXRhdGlvbkNhbGxiYWNrIDogcHVibGljIE11dGF0aW9u
Q2FsbGJhY2ssIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8VjhNdXRhdGlvbkNhbGxiYWNrPiBjcmVhdGUodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYnNlcnZlciwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFjaywgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVjhNdXRhdGlvbkNhbGxiYWNrKG9ic2VydmVyLCBjYWxsYmFjaywgY29udGV4dCkpOworICAg
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FsbChjb25zdCBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVj
b3JkPiA+JiwgTXV0YXRpb25PYnNlcnZlciopIE9WRVJSSURFOworCisgcHJpdmF0ZToKKyAgICBW
OE11dGF0aW9uQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0Piwgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAgVjhEZXBlbmRlbnRSZXRh
aW5lZCBtX2NhbGxiYWNrOworICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsK
K307CisKK30KKyNlbmRpZiAvLyBWOE11dGF0aW9uQ2FsbGJhY2tfaAorI2VuZGlmIC8vIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTNlNjgwMjI0ZDgyOTkyZWFjZTgwM2NkODY0ZGRlMmE2
MTZiOTg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJWOE11dGF0
aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNp
bmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOENhbGxiYWNrLmgiCi0jaW5jbHVkZSAi
VjhNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVkZSAiVjhNdXRhdGlvblJlY29yZC5oIgotI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWJvb2wgVjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRh
dGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQot
ewotICAgIEFTU0VSVChtdXRhdGlvbnMpOwotICAgIGlmICghbXV0YXRpb25zKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0KLSAgICB2ODo6
SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0KTsKLSAgICBpZiAodjhDb250ZXh0LklzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUo
djhDb250ZXh0KTsKLQotICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IG11dGF0aW9uc0FycmF5ID0g
djg6OkFycmF5OjpOZXcobXV0YXRpb25zLT5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbXV0YXRpb25zLT5zaXplKCk7ICsraSkKLSAgICAgICAgbXV0YXRpb25zQXJyYXktPlNl
dCh2OEludGVnZXIoaSksIHRvVjgobXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOwotCi0gICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZlcik7Ci0gICAg
aWYgKG9ic2VydmVySGFuZGxlLklzRW1wdHkoKSkgewotICAgICAgICBpZiAoIWlzU2NyaXB0Q29u
dHJvbGxlclRlcm1pbmF0aW5nKCkpCi0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoIW9ic2VydmVySGFuZGxlLT5Jc09iamVjdCgpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10g
PSB7Ci0gICAgICAgIG11dGF0aW9uc0FycmF5LAotICAgICAgICBvYnNlcnZlckhhbmRsZQotICAg
IH07Ci0KLSAgICBib29sIGNhbGxiYWNrUmV0dXJuVmFsdWUgPSBmYWxzZTsKLSAgICByZXR1cm4g
IWludm9rZUNhbGxiYWNrKG1fY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
b2JzZXJ2ZXJIYW5kbGUpLCAyLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApp
bmRleCA2OGY0YzdhYTVjMjlhMzRmODY4ZmQzOWQ1NzAyYWJlMGRkODRiNWMxLi41NjRhMmIwMDE4
Y2Q5OWJiZmUyNGM3M2M3YThjMThiMWRkODk5ZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0aW9u
T2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYg
KCFhcmctPklzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oVFlQRV9N
SVNNQVRDSF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAorICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKIAotICAgIFJlZlB0cjxN
dXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKGFy
ZywgY29udGV4dCk7Ci0gICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gTXV0
YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSk7CisgICAgUmVmUHRyPE11
dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUod3Jh
cHBlciwgYXJnLkFzPHY4OjpPYmplY3Q+KCksIGNvbnRleHQpOworICAgIFJlZlB0cjxNdXRhdGlv
bk9ic2VydmVyPiBvYnNlcnZlciA9IE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5y
ZWxlYXNlKCksIGNvbnRleHQpOwogCi0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gYXJncy5Ib2xkZXIoKTsKICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIod3JhcHBl
ciwgJmluZm8sIG9ic2VydmVyLmdldCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBl
ckZvckRPTU9iamVjdChvYnNlcnZlci5yZWxlYXNlKCksIHdyYXBwZXIpOworICAgIFY4RE9NV3Jh
cHBlcjo6c2V0SlNXcmFwcGVyRm9yQWN0aXZlRE9NT2JqZWN0KG9ic2VydmVyLnJlbGVhc2UoKSwg
d3JhcHBlcik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25DYWxsYmFjay5oCmluZGV4IDExOTE5N2FiZTM0YjFkYTkwNGQ0MjJiYmY4ZTBmMWY3N2U3NzZk
ZjIuLjc2NGZhYjk2NzJhNWIyNGFlMzlhOGRjZWI2NzJiMWVhYzFhOTc1MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaApAQCAtNDIsMTMgKzQyLDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIE11dGF0aW9uUmVjb3JkOwogY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsK
IAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IE11dGF0aW9uUmVjb3Jk
QXJyYXk7Ci0KIGNsYXNzIE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRh
dGlvbkNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TXV0YXRpb25DYWxsYmFjaygp
IHsgfQogCi0gICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkq
LCBNdXRhdGlvbk9ic2VydmVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjYWxsKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4mLCBNdXRhdGlvbk9ic2VydmVyKikgPSAwOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2su
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyYWVjZDliZTllNDFkZTRmMzJlNDZmOWQwNWIwZWJmMmNlNDg1
MGU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDM4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1tb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9u
YWw9TVVUQVRJT05fT0JTRVJWRVJTLAotICAgICAgICBDYWxsYmFjawotICAgIF0gTXV0YXRpb25D
YWxsYmFjayB7Ci0gICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRp
b25SZWNvcmRBcnJheSBtdXRhdGlvbnMsIGluIE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwot
ICAgIH07Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggYTQw
ZDUwN2ZlNzAwM2EwMjRjYWU2NGM4Y2ViZjhmOGIzNWUxZTM1YS4uOWFjZDFlNTBlZGYyMDk1OGZi
NWEzYzdlYzlhODA3ZmFhYTU3MzIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcApAQCAtNTcsMTQgKzU3LDE3IEBAIHN0cnVjdCBNdXRhdGlvbk9ic2VydmVyOjpPYnNl
cnZlckxlc3NUaGFuIHsKICAgICB9CiB9OwogCi1QYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+
IE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrKQorUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBNdXRhdGlvbk9ic2VydmVyOjpj
cmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykpOworICAgIFJl
ZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9IGFkb3B0UmVmKG5ldyBNdXRhdGlvbk9i
c2VydmVyKGNhbGxiYWNrLCBjb250ZXh0KSk7CisgICAgb2JzZXJ2ZXItPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiBvYnNlcnZlci5yZWxlYXNlKCk7CiB9CiAKLU11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFj
aykKLSAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCitNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlv
bk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2ssIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwg
dGhpcykKKyAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiAgICAgLCBtX3ByaW9yaXR5KHNfb2Jz
ZXJ2ZXJQcmlvcml0eSsrKQogewogfQpAQCAtMTQxLDEyICsxNDQsMTQgQEAgdm9pZCBNdXRhdGlv
bk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
biogcmVnaXN0cmEKIHsKICAgICBBU1NFUlQoIW1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhyZWdp
c3RyYXRpb24pKTsKICAgICBtX3JlZ2lzdHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbik7CisgICAg
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9u
KQogewogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbnMuY29udGFpbnMocmVnaXN0cmF0aW9uKSk7
CiAgICAgbV9yZWdpc3RyYXRpb25zLnJlbW92ZShyZWdpc3RyYXRpb24pOworICAgIHVuc2V0UGVu
ZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCiB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPE11dGF0aW9u
T2JzZXJ2ZXI+ID4gTXV0YXRpb25PYnNlcnZlclNldDsKQEAgLTE4NSwxMCArMTkwLDcgQEAgdm9p
ZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKCkKICAgICBpZiAobV9yZWNvcmRzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4g
PiByZWNvcmRzOwotICAgIHJlY29yZHMuc3dhcChtX3JlY29yZHMpOwotCi0gICAgbV9jYWxsYmFj
ay0+aGFuZGxlRXZlbnQoJnJlY29yZHMsIHRoaXMpOworICAgIG1fY2FsbGJhY2stPmNhbGwodGFr
ZVJlY29yZHMoKSwgdGhpcyk7CiB9CiAKIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFs
bE11dGF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAppbmRleCBmYWRi
Mzc4ZDFlZmRlYmQxY2JjZTMyNDdlZDlmOWZiMTAzNzczNDAxLi4wNWFiN2VmM2M5MTVmOThhZDFj
MGJiMzQ4MjNjM2NhYzM5Yjg1M2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTQ4LDEzICs0OSwxNCBAQCBjbGFzcyBNdXRhdGlvbkNhbGxiYWNrOwogY2xhc3MgTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjsKIGNsYXNzIE11dGF0aW9uUmVjb3JkOwogY2xhc3MgTm9kZTsK
K2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CiAKIHR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvbk9ic2VydmVyT3B0aW9uczsKIHR5
cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9uczsKIAotY2xh
c3MgTXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+
IHsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbk9i
c2VydmVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CiAgICAgZW51bSBNdXRh
dGlvblR5cGUgewogICAgICAgICBDaGlsZExpc3QgPSAxIDw8IDAsCkBAIC03NCwxMCArNzYsMTAg
QEAgcHVibGljOgogICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCiAgICAg
fTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNz
UmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlv
bk9ic2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsK
IAotICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CisgICAgdmlydHVhbCB+TXV0YXRpb25PYnNlcnZl
cigpOwogCiAgICAgdm9pZCBvYnNlcnZlKE5vZGUqLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gdGFrZVJlY29y
ZHMoKTsKQEAgLTkwLDcgKzkyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdHJ1Y3QgT2Jz
ZXJ2ZXJMZXNzVGhhbjsKIAotICAgIGV4cGxpY2l0IE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0
cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgTXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPE11
dGF0aW9uQ2FsbGJhY2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgdm9pZCBkZWxp
dmVyKCk7CiAKICAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCmluZGV4IDBh
ZTk5MmU2ZGE3NWU1MTU0M2Y3Nzk4YjcxNjA2NTk4ZDE3OWFjMjEuLjI2NTI3ZDQzOGRmZTJmNzlm
NzE2Yzk0MDVmOWU3NDA1NTg2MzU4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlci5pZGwKQEAgLTMwLDYgKzMwLDcgQEAKIAogbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFj
ZSBbCisgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJ
T05fT0JTRVJWRVJTLAogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3Ry
dWN0b3JQYXJhbWV0ZXJzPTEK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164986</attachid>
            <date>2012-09-20 14:31:03 -0700</date>
            <delta_ts>2012-09-20 14:35:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93661-20120920143028.patch</filename>
            <type>text/plain</type>
            <size>63346</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2ZkZmYxOThmYmVhYzY0NjkzYTE4OTgwZjEzNzZkMWM0MjEyN2I1Li4zYTYyNTNlMDNhNTE2N2U4
NjU3MGExMDMwZGYwNmEwMGEyZWE3NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wOS0yMCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBzaG91bGQgbm90IGNyZWF0ZSBjaXJj
dWxhciwgbGVha3kgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvcnQgcmVtb3ZlRGlyZWN0IGZvciB1c2UgaW4gV2ViQ29yZSBiaW5k
aW5ncy4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAg
IChKU09iamVjdCk6CisKIDIwMTItMDktMTggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgV1RGOjpIYXNUcml2aWFsRGVzdHJ1Y3RvciBpbnN0
ZWFkIG9mIGNvbXBpbGVyLXNwZWNpZmljIHZlcnNpb25zIGluIEpTQzo6TmVlZHNEZXN0cnVjdG9y
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZjkxMDE5M2MxZGEyNmE0NTNhNDVjN2JkZWEzNmY0NzQ2ZjYwMDUwZC4u
ZDVhMjk1MzEzMDY5YTEwODk4ODA5YjNiM2Q1MDY4NjJmZjJmNjg0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDc2IEBACisyMDEyLTA5LTIwICBFbGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJzIHNob3VsZCBub3QgY3JlYXRlIGNp
cmN1bGFyLCBsZWFreSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MzY2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBWOERlcGVuZGVudFJldGFpbmVkIGFuZCBKU0RlcGVuZGVudFJl
dGFpbmVkIHRvIGZpeCB0aGUgbWVtb3J5IGxlYWtzIGluIE11dGF0aW9uT2JzZXJ2ZXIgd2hlbgor
ICAgICAgICBjcmVhdGluZyBjaXJjdWxhciByZWZlcmVuY2VzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Qcml2YXRlTmFtZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogVXNlSlNDLmNtYWtlOgorICAgICAgICAqIFVzZVY4LmNtYWtlOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Rl
cGVuZGVudFJldGFpbmVkLmg6IEZpeCBicm9rZW4gY29tcGlsZS4gVGhlIHVzYWdlIG9mIHB1dERp
cmVjdCBhbmQgcmVtb3ZlRGlyZWN0IHdhcyB3cm9uZy4KKyAgICAgICAgKFdlYkNvcmU6OkpTRGVw
ZW5kZW50UmV0YWluZWQ6OkpTRGVwZW5kZW50UmV0YWluZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SlNEZXBlbmRlbnRSZXRhaW5lZDo6cmV0YWluKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRGVwZW5k
ZW50UmV0YWluZWQ6OnJlbGVhc2UpOgorICAgICAgICAoSlNEZXBlbmRlbnRSZXRhaW5lZCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFj
azo6SlNNdXRhdGlvbkNhbGxiYWNrKTogSW1wbGVtZW50YXRpb24gb2Ygd2hhdCB3YXMgcHJldmlv
dXNseSBnZW5lcmF0ZWQgZnJvbSB0aGUgSURMLgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlv
bkNhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suaDoKKyAgICAgICAgKEpTTXV0YXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpK
U011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9u
Q2FsbGJhY2s6OnNldE93bmVyKTogU2V0IHRoZSBHQyBvd25lci4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENhbGxiYWNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOENhbGxiYWNrLmg6IENoYW5nZSBpbnZva2VDYWxsYmFjayB0byB0YWtlIGEgdjg6Okhh
bmRsZSBpbnN0ZWFkIG9mIGEgdjg6OkxvY2FsLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhEZXBlbmRlbnRSZXRhaW5lZC5oOgorICAgICAgICAoV2ViQ29yZTo6
VjhEZXBlbmRlbnRSZXRhaW5lZDo6VjhEZXBlbmRlbnRSZXRhaW5lZCk6IEZpeCBicm9rZW4gY29t
cGlsZSB3aXRoIGFzc2lnbm1lbnQgdG8gbV9vd25lciB0aGF0IHNob3VsZCBoYXZlIHVzZWQgc2V0
KCkuCisgICAgICAgIChXZWJDb3JlOjpWOERlcGVuZGVudFJldGFpbmVkOjpyZXRhaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6VjhEZXBlbmRlbnRSZXRhaW5lZDo6d2Vha0NhbGxiYWNrKTogSXQgd2Fz
IHdyb25nIHRvIGhhdmUgdHdvIGNhbGxiYWNrcy4gVjggbWF5IGNhbGwgdGhlc2Ugb3V0IG9mIG9y
ZGVyIG9uIHNodXRkb3duLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFj
ay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE11
dGF0aW9uQ2FsbGJhY2s6OlY4TXV0YXRpb25DYWxsYmFjayk6IEltcGxlbWVudGF0aW9uIG9mIHdo
YXQgd2FzIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGZyb20gdGhlIElETC4KKyAgICAgICAgKFdlYkNv
cmU6OlY4TXV0YXRpb25DYWxsYmFjazo6Y2FsbCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhN
dXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFY4TXV0YXRp
b25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0
ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25P
YnNlcnZlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uT2JzZXJ2ZXI6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9uQ2FsbGJhY2spOgorICAgICAg
ICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vTXV0
YXRpb25PYnNlcnZlci5jcHA6IE1hZGUgaW50byBhbiBBY3RpdmVET01PYmplY3QgdG8gcHJldmVu
dCB0aGUgd3JhcHBlcnMgZnJvbSBiZWluZyBjb2xsZWN0ZWQgc28gdGhleSdyZSBhY2Nlc3NpYmxl
IGluIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvbk9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uU3RhcnRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvbkVuZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIpOgorICAgICAg
ICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBkb20vTXV0YXRpb25PYnNlcnZlci5pZGw6CisKIDIwMTItMDktMTggIEpvaG4gSi4gQmFydG9u
ICA8am9obmpiYXJ0b25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNl
dCBmb2N1cyBvbiB0aGUgRXh0ZW5zaW9uUGFuZWwncyBpZnJhbWUgd2hlbiBpdCBpcyBzZWxlY3Rl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgppbmRleCA0ZDU0MzY0ZjBhY2UzODkxOTdhZDA3MTM1NmFjZDBiYWU1OGMyM2ZhLi5iNWRjYzUy
MWRjNjA4NGJiZDZiMmI2M2FhYWFmN2MwZWYyNDhkMjlkIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjg2LDYgKzI4Niw3IEBA
IEVYUE9SVFMKICAgICA/cmVsZWFzZURlY29tbWl0dGVkQE9TQWxsb2NhdG9yQFdURkBAU0FYUEFY
SUBaCiAgICAgP3JlbGVhc2VFeGVjdXRhYmxlTWVtb3J5QEpTR2xvYmFsRGF0YUBKU0NAQFFBRVhY
WgogICAgID9yZW1vdmVCbG9ja0BNYXJrZWRBbGxvY2F0b3JASlNDQEBRQUVYUEFWTWFya2VkQmxv
Y2tAMkBAWgorICAgID9yZW1vdmVEaXJlY3RASlNPYmplY3RASlNDQEBRQUVfTkFBVkpTR2xvYmFs
RGF0YUAyQFZQcm9wZXJ0eU5hbWVAMkBAWgogICAgID9yZXBvcnRBYmFuZG9uZWRPYmplY3RHcmFw
aEBIZWFwQEpTQ0BAUUFFWFhaCiAgICAgP3JlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlQEhl
YXBASlNDQEBBQUVYSUBaCiAgICAgP3Jlc2VydmVBbmRDb21taXRAT1NBbGxvY2F0b3JAV1RGQEBT
QVBBWElXNFVzYWdlQDEyQF9OMTFAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKaW5kZXggOGI1MjkxNWI2ZWMyOTY3YjQ4ZjE3ZmJmYzg0MGUwZjZiMzI0MDhlZi4uNjMy
NDA2MzEzNDVhYTljODMzMTc5MzRlNzM2YWNhNjRmNWIxMmVmYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC00MzAsNyArNDMwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdm9pZCB0cmFuc2l0aW9uVG8oSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJl
Kik7CiAKLSAgICAgICAgYm9vbCByZW1vdmVEaXJlY3QoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlO
YW1lKTsgLy8gUmV0dXJuIHRydWUgaWYgYW55dGhpbmcgaXMgcmVtb3ZlZC4KKyAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgYm9vbCByZW1vdmVEaXJlY3QoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlO
YW1lKTsgLy8gUmV0dXJuIHRydWUgaWYgYW55dGhpbmcgaXMgcmVtb3ZlZC4KICAgICAgICAgYm9v
bCBoYXNDdXN0b21Qcm9wZXJ0aWVzKCkgeyByZXR1cm4gc3RydWN0dXJlKCktPmRpZFRyYW5zaXRp
b24oKTsgfQogICAgICAgICBib29sIGhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKSB7IHJldHVy
biBzdHJ1Y3R1cmUoKS0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggZjc0YmEyZDI4ZjdiNDg1MjY3NjA4NjBhOGM5N2UwMTJhMDU0YTQyNy4u
NGFhODUyM2JkZTRiZTUxNWFmYzM2NjlhNTJhNTVhNzdkYTIyMTQyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTM2NCw3ICszNjQsNiBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20v
TWVzc2FnZUV2ZW50LmlkbAogICAgIGRvbS9NZXNzYWdlUG9ydC5pZGwKICAgICBkb20vTW91c2VF
dmVudC5pZGwKLSAgICBkb20vTXV0YXRpb25DYWxsYmFjay5pZGwKICAgICBkb20vTXV0YXRpb25F
dmVudC5pZGwKICAgICBkb20vTXV0YXRpb25PYnNlcnZlci5pZGwKICAgICBkb20vTXV0YXRpb25S
ZWNvcmQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZjAwZDU1NjhiOTAxNTc3
OTU3NWE3M2NiMDZiZjc3ZGZkMzcxNTNjNy4uNWJmMTZmZGJkZjU5NTViMjIyZWU1ZWRmYzY2NDQw
Y2RiZmFlNmQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMjUyLDcgKzI1Miw2
IEBACiAjaW5jbHVkZSAiSlNNZXRhZGF0YS5jcHAiCiAjaW5jbHVkZSAiSlNNZXRhZGF0YUNhbGxi
YWNrLmNwcCIKICNpbmNsdWRlICJKU01vdXNlRXZlbnQuY3BwIgotI2luY2x1ZGUgIkpTTXV0YXRp
b25DYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkV2ZW50LmNwcCIKICNpbmNsdWRl
ICJKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDFmMDk3MmNkMTc5ODkyZmM1NGI4
OWU1NmFlYzFlZWUzYmUzM2NkNS4uN2ZlNGZlMmVjNTcyYjg2MTljNDRmNjFjZTQwNzQwOTQyODk0
MjE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMzIsNyArMjMyLDYgQEAg
QklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL01lc3NhZ2VFdmVudC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL01lc3NhZ2VQb3J0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20v
TW91c2VFdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9u
UmVjb3JkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL1ByaXZhdGVOYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL1ByaXZhdGVOYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhkNGI0ZGUzMDAzNWMzYzQ5MTZh
OGZjZDQ5YzY1NDFiNmY0MWZjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaApAQCAtMCwwICsxLDQgQEAKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfUHJpdmF0ZU5hbWVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9Qcml2
YXRlTmFtZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJpdmF0ZU5hbWUuaD4KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2E2ZGFiY2Y1MTQ0MjYxYjQwOTc2
ZDVhMDlhY2E3MmFlM2M4ODQ1Ni4uMTg0NDEzZTc1Y2NiZWRiYTcyMTBmYzUwNjM5MTk5OTI5ZjI3
OTRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01MzksOCArNTM5LDYgQEAg
d2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWlj
cm9EYXRhSXRlbVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCBcCi0JRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25FdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlv
bkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmNw
cCBcCkBAIC0xMzU2LDcgKzEzNTQsNiBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNv
cmUpL2RvbS9NZXNzYWdlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NZXNzYWdlUG9ydC5p
ZGwgXAogCSQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLQkkKFdlYkNvcmUpL2RvbS9N
dXRhdGlvbkNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwg
XAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2Rv
bS9NdXRhdGlvblJlY29yZC5pZGwgXApAQCAtMjMzMSw3ICsyMzI4LDggQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3Rv
bS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1
c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFj
ay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKaW5kZXggMmNjYTIxZTk0Mjc2Y2YxYWE3YjU4M2VhZjA1ZTY2OGZjMjlkOTdjZi4uZDQ3
N2I3YzQyYzI4MjQ2ZmQyNzMzOThlMTkwMzY4MDllN2RjMWFkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0x
NjAsNyArMTYwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBv
cnRDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwK
ICAgICAgYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIFwKLSAgICAg
YmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisgICAgIGJpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0
b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21h
a2UKaW5kZXggM2U2MGEzZTg4MWYzNjA5YmZjNDQzYWE5MmFkMDViYWRkNTA2MjI0MC4uNzViMmZj
OGU5YWJiZmY2NWE1OGQxZGM3YzRiY2U1YTI4N2RmNzgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQpAQCAt
MTExLDcgKzExMSw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdz
L2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBv
cnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20u
Y3BwCi0gICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVXNlVjguY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRl
eCA1Y2Q0MmM4MDNlZDY3ZGNlZGY2ZTY1ZjgyZWVjMGQ5OTBjMTA3MTIwLi43MTIwMmVhZTYzNjcx
NGRjYmZiMzE4NGMzMzRhZWU5YzczYjEyYTUxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9V
c2VWOC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtMTMwLDcgKzEz
MCw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNz
YWdlUG9ydEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVt
VmFsdWVDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFj
a0N1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrLmNw
cAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGQ2ZmY3NzU3NTZkNTc3M2NmNTYzMmRkMjMwZTEzZjFhODEwMWEyMzYuLjkxYTEwNGYxODAw
MDg0NDg4NTZjMWM0NWUyYzMyNTNmYzY0NjA2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwMDUs
NyArMTAwNSw2IEBACiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VFdmVudC5pZGwnLAogICAgICAg
ICAgICAgJ2RvbS9NZXNzYWdlUG9ydC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Nb3VzZUV2ZW50
LmlkbCcsCi0gICAgICAgICAgICAnZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsJywKICAgICAgICAg
ICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbk9i
c2VydmVyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3JkLmlkbCcsCkBAIC0y
MDkwLDcgKzIwODksOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9t
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9t
LmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCcsCkBAIC0yMjE1LDYgKzIyMTUsOCBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuaCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvVjhNdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L05QT2Jq
ZWN0V3JhcHBlci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L05QT2JqZWN0V3JhcHBl
ci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcCcsCkBAIC0yNDA1
LDcgKzI0MDcsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VF
dmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWlj
cm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAnLApAQCAtNzc0
MSw4ICs3NzQyLDYgQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWV0YWRhdGFDYWxsYmFjay5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5jcHAnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50Lmgn
LAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwJywK
ICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0
YXRpb25FdmVudC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxODk2YTExOWRjMmZmOTg4MTFiMjM1ODUx
ZGUzMmYwZDA0YzM1YTZjLi4zNTIwZmJkMWYyODQxYTdjYjYxMWY3NjgwMzc5MDk2MzFhYzc2M2Mw
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
MTE1OTQsNjIgKzExNTk0LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU011dGF0aW9uQ2FsbGJhY2suY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25DYWxsYmFj
ay5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TXV0YXRpb25FdmVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNjkz
NTAsNyArNjkyOTQsMTEgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAi
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrLmgi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2suY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjBkYjhmNDQ0MTRjZWFl
YTRjZjU4ZGUzMTE0Y2I3YzFkYjc3ODUyYi4uOGRhYTkxY2ZkNmM5MjE2OTRlMjExYTkxMzJlYzAy
YWM4Y2ZlZmY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTg0NCwxMiArNTg0NCw5IEBACiAJCUM2RjA5MDBBMTQzMjdCNjEw
MDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwMTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25D
YWxsYmFjay5oICovOyB9OwogCQlDNkYwOTAwRTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25P
YnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07
CiAJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNjE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUM2RjA5MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5j
cHAgKi87IH07Ci0JCUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5
MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKIAkJQzZG
MDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyNDE0MzI3RDRGMDA2
ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsKIAkJQzZGMDkwMkQxNDMyN0Q0
RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25PYnNlcnZlci5oICovOyB9OwogCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNN
dXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwICovOyB9OwotCQlDNkYwOTE4NTE0M0E2QzNCMDA2ODU4NDkgLyogSlNN
dXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwICovOyB9OwogCQlDNkY0MTA0NzEzMEM2RTg5MDAzOTNERTQgLyogRW50
cnlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovOyB9OwogCQlDQTNC
RjY3QzEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUz
IC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJQ0EzQkY2N0UxMEQ5OUJBRTAwRTZDRTUz
IC8qIFNjcm9sbEFuaW1hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjU2Myw2
ICs2NTYwLDggQEAKIAkJRkZENUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovOyB9
OwogCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZENUI5NzgxMzVD
Qzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRkQ4NkU3ODE1Rjk1ODM2MDAwNDcyMzMg
LyogSlNEZXBlbmRlbnRSZXRhaW5lZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkZEODZFNzcxNUY5NTgzNjAwMDQ3MjMzIC8qIEpTRGVwZW5kZW50UmV0
YWluZWQuaCAqLzsgfTsKKwkJRkZEODZFQkExNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25D
YWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRkQ4NkVCODE2MEE5Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsg
fTsKKwkJRkZEODZFQkIxNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZEODZFQjkxNjBB
OUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwogLyogRW5kIFBCWEJ1
aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0
aW9uICovCkBAIC0xMzE3NywxNiArMTMxNzYsMTIgQEAKIAkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25SZWNvcmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9u
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25DYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAwMjE0MzI3QjYxMDA2
ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0
YXRpb25DYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDA1
MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNl
cnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDA3MTQzMjdCNjEwMDY4NTg0
OSAvKiBNdXRhdGlvbk9ic2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNdXRhdGlv
bk9ic2VydmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjAxNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlDNkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNh
bGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25DYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAyNDE0MzI3RDRGMDA2
ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxs
YmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
NkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7IHBhdGggPSBNb2R1bGVzL2ZpbGVz
eXN0ZW0vRW50cnlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2
N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxMCw2ICsxNDAwNSw4IEBACiAJCUZGRDVC
OTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRkQ1Qjk3ODEzNUNDOTc4MDBENUU5MkEgLyogUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
VmlzaWJpbGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZGRDg2RTc3
MTVGOTU4MzYwMDA0NzIzMyAvKiBKU0RlcGVuZGVudFJldGFpbmVkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVwZW5kZW50UmV0YWluZWQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRkZEODZFQjgxNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxs
YmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9u
Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRkQ4NkVCOTE2MEE5
Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xODk2Miw4ICsxODk1OSw2IEBACiAJ
CQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCAqLywKIAkJCQlG
RTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5jcHAgKi8sCiAJCQkJRkU4
MERBNjIwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCAqLywKLQkJCQlDNkYwOTAy
MDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLywKLQkJCQlDNkYw
OTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi8sCiAJCQkJQzZG
MDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi8sCiAJCQkJ
QzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovLAogCQkJ
CUM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCAqLywKQEAg
LTIwMTk3LDYgKzIwMTkyLDggQEAKIAkJCQk0OUIzNzYwQjE1QzZDNjg0MDA1OTEzMUQgLyogQXJy
YXlWYWx1ZS5oICovLAogCQkJCTk3M0FBM0YyMTVEMDg4RjAwMEUzOEE4NSAvKiBCaW5kaW5nU3Rh
dGUuY3BwICovLAogCQkJCTk3M0FBM0YzMTVEMDg4RjAwMEUzOEE4NSAvKiBCaW5kaW5nU3RhdGUu
aCAqLywKKwkJCQlGRkQ4NkVCODE2MEE5Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxiYWNr
LmNwcCAqLywKKwkJCQlGRkQ4NkVCOTE2MEE5Qjk3MDAwNDcyMzMgLyogSlNNdXRhdGlvbkNhbGxi
YWNrLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIzMDYwQTMwMEZFQTAwRjYxQUI4IC8qIENvZGVH
ZW5lcmF0b3JKUy5wbSAqLywKIAkJCQkzMTJENjdCMDE1MzU2OTFGMDA1NjNEMEQgLyogRGljdGlv
bmFyeS5jcHAgKi8sCkBAIC0yMDQxOCw3ICsyMDQxNSw2IEBACiAJCQkJRTFBREVENDYwRTc2QjhE
RDAwNEExQTVFIC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uY3BwICovLAogCQkJCTQxRjU4NEM2MTA0
NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8sCiAJCQkJMTA1OTQ1NzIx
NUI0Mjk1MzAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCAqLywKLQkJ
CQlDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNw
cCAqLywKIAkJCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI1RjBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05v
ZGVDdXN0b20uY3BwICovLApAQCAtMjE3ODUsNyArMjE3ODEsNiBAQAogCQkJCTg1MDMxQjMxMEE0
NEVGQzcwMEY5OTJFMCAvKiBNb3VzZVJlbGF0ZWRFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzIw
QTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlUmVsYXRlZEV2ZW50LmggKi8sCiAJCQkJQzZGMDkwMDEx
NDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCAqLywKLQkJCQlDNkYwOTAwMjE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5pZGwgKi8sCiAJCQkJODUwMzFCMzMw
QTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjM0MEE0
NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmggKi8sCiAJCQkJOTNFRUMxRjMwOUMyODc3
NzAwQzUxNUQxIC8qIE11dGF0aW9uRXZlbnQuaWRsICovLApAQCAtMjQwOTMsNyArMjQwODgsNyBA
QAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTEwNTk0NTdBMTVCNDJBNDMwMDREMzdGRCAvKiBKU01pY3JvRGF0
YUl0ZW1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5RDEwOURBMkI0ODAwOTYzM0E1
IC8qIEpTTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQzZGMDkwMjkxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkZEODZF
QkIxNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjVERjMxRkMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTTXV0YXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDhGQ0ExNDMxMDAwRDAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjczNjcsOCArMjczNjIsNyBAQAog
CQkJCTEwNTk0NTc3MTVCNDJBMEQwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxMDU5NDU3MzE1QjQyOTUzMDA0RDM3RkQgLyogSlNNaWNyb0Rh
dGFJdGVtVmFsdWVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg2NjI5RDIwOURBMkI0
ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNkYwOTAy
ODE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUM2RjA5MTg1MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkZEODZFQkExNjBBOUI5NzAwMDQ3MjMzIC8qIEpT
TXV0YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYw
MDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA5
MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDMzNjE5YjUzNWY3NDE4NWU3ZDA0OGE3ODZl
ZTlkYzk4YWQ5MzA0OWQuLmRjMmQ4YmQzNjUxNTI5ZDAzODEwNjI0NDk2MzllNTk4YWM3Mjg1M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcApAQCAtMTE2LDcgKzExNiw3IEBACiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWlj
cm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAi
SlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05hbWVkTm9kZU1hcEN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwZW5kZW50UmV0YWluZWQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRGVwZW5kZW50UmV0YWluZWQuaAppbmRleCBmYzRlOGYzMWYzZTRm
NmZiZjgwMGMyYmZiZjFhOTM0Njg5NjI0MzEwLi5lODI4MzNhMTE4NmMwODk3OGJhZWM4N2VhM2Q2
ZDkwNTVkNDk2YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rl
cGVuZGVudFJldGFpbmVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXBl
bmRlbnRSZXRhaW5lZC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIEpTRGVwZW5kZW50UmV0
YWluZWRfaAogI2RlZmluZSBKU0RlcGVuZGVudFJldGFpbmVkX2gKIAorI2luY2x1ZGUgIkpTRE9N
R2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU09iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJpdmF0ZU5hbWUuaD4KQEAgLTM2LDgg
KzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0RlcGVuZGVudFJldGFpbmVk
IHsKIHB1YmxpYzoKLSAgICBKU0RlcGVuZGVudFJldGFpbmVkKEpTQzo6SlNPYmplY3QqIG93bmVy
LCBKU0M6OkpTT2JqZWN0KiB2YWx1ZSkKKyAgICBKU0RlcGVuZGVudFJldGFpbmVkKEpTQzo6SlNP
YmplY3QqIG93bmVyLCBKU0M6OkpTT2JqZWN0KiB2YWx1ZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgICAgICAsIG1fZ2xvYmFs
T2JqZWN0KGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAg
ICAgIGlmIChvd25lcikKQEAgLTY0LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQo
IW1fb3duZXIgJiYgb3duZXIpOwogICAgICAgICBBU1NFUlQobV92YWx1ZSk7CiAgICAgICAgIG1f
b3duZXIgPSBKU0M6OlBhc3NXZWFrPEpTQzo6SlNPYmplY3Q+KG93bmVyKTsKLSAgICAgICAgbV9v
d25lci0+cHV0RGlyZWN0KG1fcHJvcGVydHlOYW1lLCBnZXQoKSk7CisgICAgICAgIG1fb3duZXIt
PnB1dERpcmVjdChtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBtX3Byb3BlcnR5TmFtZSwg
Z2V0KCkpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTcyLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlbGVhc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fb3duZXIpCi0gICAgICAgICAg
ICBtX293bmVyLT5yZW1vdmVEaXJlY3QobV9wcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgbV9v
d25lci0+cmVtb3ZlRGlyZWN0KG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIG1fcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgbV92YWx1ZS5jbGVhcigpOwogICAgICAgICBtX293bmVyLmNsZWFy
KCk7CiAgICAgfQpAQCAtODAsNiArODIsNyBAQCBwcml2YXRlOgogICAgIEpTQzo6V2VhazxKU0M6
OkpTT2JqZWN0PiBtX293bmVyOwogICAgIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX3ZhbHVl
OwogICAgIEpTQzo6UHJpdmF0ZU5hbWUgbV9wcm9wZXJ0eU5hbWU7CisgICAgSlNDOjpXZWFrPEpT
RE9NR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25D
YWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyNDdkZDgxYjllOWVkMjdiMmJjOTBkNTM2NGIxMzIwOTRjMmNi
N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0
aW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxi
YWNrLmgiCisKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpTRE9NV2lu
ZG93QmFzZS5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkpT
TXV0YXRpb25SZWNvcmQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitKU011dGF0aW9uQ2FsbGJhY2s6OkpTTXV0YXRpb25DYWxsYmFj
ayhKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisg
ICAgOiBBY3RpdmVET01DYWxsYmFjayhnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAsIG1fY2FsbGJhY2soMCwgY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkKKyAgICAs
IG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3Qp
Cit7Cit9CisKK2Jvb2wgSlNNdXRhdGlvbkNhbGxiYWNrOjpjYWxsKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8TXV0YXRpb25SZWNvcmQ+ID4mIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2
ZXIpCit7CisgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIFJlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7CisKKyAg
ICBKU0NhbGxiYWNrRGF0YSBkYXRhKG1fY2FsbGJhY2suZ2V0KCksIG1fZ2xvYmFsT2JqZWN0Lmdl
dCgpKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNH
bG9iYWxEYXRhKCkpOworCisgICAgRXhlY1N0YXRlKiBleGVjID0gZGF0YS5nbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbXV0YXRpb25MaXN0
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbXV0YXRpb25zLnNpemUoKTsgKytpKQorICAg
ICAgICBtdXRhdGlvbkxpc3QuYXBwZW5kKHRvSlMoZXhlYywgZGF0YS5nbG9iYWxPYmplY3QoKSwg
bXV0YXRpb25zLmF0KGkpLmdldCgpKSk7CisKKyAgICBKU1ZhbHVlIGpzT2JzZXJ2ZXIgPSB0b0pT
KGV4ZWMsIGRhdGEuZ2xvYmFsT2JqZWN0KCksIG9ic2VydmVyKTsKKworICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBlbmQoY29uc3RydWN0QXJyYXkoZXhlYywgZGF0
YS5nbG9iYWxPYmplY3QoKSwgbXV0YXRpb25MaXN0KSk7CisgICAgYXJncy5hcHBlbmQoanNPYnNl
cnZlcik7CisKKyAgICBib29sIHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNlOworICAgIGRhdGEuaW52
b2tlQ2FsbGJhY2soanNPYnNlcnZlciwgYXJncywgJnJhaXNlZEV4Y2VwdGlvbik7CisgICAgcmV0
dXJuICFyYWlzZWRFeGNlcHRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMGE2ZGI2MGI2MWM4
MjQ1NGYzOWFkYjNiMTM1YzhmMjIwMzRhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaApAQCAtMCwwICsxLDYwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworI2lmbmRlZiBKU011dGF0aW9uQ2FsbGJhY2tfaAorI2RlZmluZSBKU011dGF0aW9u
Q2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUg
IkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJKU0RlcGVuZGVudFJldGFpbmVkLmgiCisjaW5jbHVkZSAiTXV0YXRpb25DYWxsYmFj
ay5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBKU011dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgTXV0YXRpb25DYWxsYmFjaywgcHVibGljIEFj
dGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU011dGF0
aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTTXV0
YXRpb25DYWxsYmFjayhjYWxsYmFjaywgZ2xvYmFsT2JqZWN0KSk7CisgICAgfQorICAgIHZpcnR1
YWwgYm9vbCBjYWxsKGNvbnN0IFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4mLCBNdXRh
dGlvbk9ic2VydmVyKikgT1ZFUlJJREU7CisKKyAgICB2b2lkIHNldE93bmVyKEpTT2JqZWN0KiBv
YnNlcnZlcikgeyBtX2NhbGxiYWNrLnJldGFpbihvYnNlcnZlcik7IH0KKworIHByaXZhdGU6Cisg
ICAgSlNNdXRhdGlvbkNhbGxiYWNrKEpTT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqKTsKKwor
ICAgIEpTRGVwZW5kZW50UmV0YWluZWQgbV9jYWxsYmFjazsKKyAgICBKU0M6OlN0cm9uZzxKU0RP
TUdsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZGU3Yjc5NDZhZTFjNmRjZjk3
NTM4YzdiMmFkMzU5NjRkZDA0ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotCi0jaW5jbHVkZSAiSlNNdXRh
dGlvbkNhbGxiYWNrLmgiCi0KLSNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKLSNpbmNsdWRl
ICJKU011dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmgiCi0j
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNM
b2NrLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Ym9vbCBKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkq
IG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIpCi17Ci0gICAgaWYgKCFjYW5J
bnZva2VDYWxsYmFjaygpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIFJlZlB0cjxKU011
dGF0aW9uQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhK
U0RPTVdpbmRvd0Jhc2U6OmNvbW1vbkpTR2xvYmFsRGF0YSgpKTsKLQotICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKLQotICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyIG11dGF0aW9uTGlzdDsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG11dGF0aW9ucy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG11dGF0aW9uTGlzdC5hcHBlbmQodG9K
UyhleGVjLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBtdXRhdGlvbnMtPmF0KGkpLmdldCgpKSk7
Ci0KLSAgICBKU1ZhbHVlIGpzT2JzZXJ2ZXIgPSB0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2Jq
ZWN0KCksIG9ic2VydmVyKTsKLQotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAg
YXJncy5hcHBlbmQoY29uc3RydWN0QXJyYXkoZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3QoKSwg
bXV0YXRpb25MaXN0KSk7Ci0gICAgYXJncy5hcHBlbmQoanNPYnNlcnZlcik7Ci0KLSAgICBib29s
IHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soanNP
YnNlcnZlciwgYXJncywgJnJhaXNlZEV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuICFyYWlzZWRFeGNl
cHRpb247Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAppbmRleCBhYjU1NjBkODBjYzk3YzQzMDFj
N2Y1MGFlMTQwODQxN2ZlMGNiMGIyLi5mMDM4YTVkNThiNTMwMDNhZjQxOGExZmU4NDBmZjI0ZTk1
ZmZlNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTU0LDggKzU0LDE0IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
TXV0YXRpb25PCiAgICAgfQogCiAgICAgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IqIGpz
Q29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IqPihleGVj
LT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gSlNN
dXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmpl
Y3QoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2Fs
bGJhY2sucmVsZWFzZSgpKSkpKTsKKworICAgIFJlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSk7CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVy
ID0gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLCBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKworICAgIEpTT2JqZWN0KiB3
cmFwcGVyID0gYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3Qo
KSwgb2JzZXJ2ZXIucmVsZWFzZSgpKSk7CisgICAgY2FsbGJhY2stPnNldE93bmVyKHdyYXBwZXIp
OworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh3cmFwcGVyKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhD
YWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmNwcApp
bmRleCA1NGY1NzJhNTVmMDkyNjU5YjY5ZjEyZDQ4ZWIyZjQyOWZhYmJmMDExLi4yZTI1MDYxMTQx
M2RmN2MzNmE1YjBkNjY5YjA1MTIxNWJmMjZhODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENhbGxiYWNrLmNwcApAQCAtMzYsMTkgKzM2LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBj
YWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNh
bGxiYWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpCitib29sIGludm9rZUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY2Fs
bGJhY2ssIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxs
YmFja1JldHVyblZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KQogewogICAgIHJldHVybiBpbnZva2VDYWxsYmFjayhjYWxsYmFjaywgdjg6OkNvbnRl
eHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCksIGFyZ2MsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFs
dWUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogfQogCi1ib29sIGludm9rZUNhbGxiYWNrKHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHRoaXNPYmplY3QsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29s
JiBjYWxsYmFja1JldHVyblZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KQorYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IGNhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHRoaXNPYmplY3QsIGludCBhcmdjLCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZhbHVlLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogewogICAgIHY4
OjpUcnlDYXRjaCBleGNlcHRpb25DYXRjaGVyOwogICAgIGV4Y2VwdGlvbkNhdGNoZXIuU2V0VmVy
Ym9zZSh0cnVlKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IGNhbGxiYWNrRnVuY3Rp
b247CiAgICAgaWYgKGNhbGxiYWNrLT5Jc0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgY2FsbGJhY2tG
dW5jdGlvbiA9IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpOZXcodjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uPjo6Q2FzdChjYWxsYmFjaykpOworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uID0g
djg6OkxvY2FsPHY4OjpGdW5jdGlvbj46Ok5ldyh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj46OkNh
c3QoY2FsbGJhY2spKTsKICAgICB9IGVsc2UgaWYgKGNhbGxiYWNrLT5Jc09iamVjdCgpKSB7CiAg
ICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGhhbmRsZUV2ZW50RnVuY3Rpb24gPSBjYWxsYmFj
ay0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiaGFuZGxlRXZlbnQiKSk7CiAgICAgICAgIGlm
IChoYW5kbGVFdmVudEZ1bmN0aW9uLT5Jc0Z1bmN0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENhbGxiYWNrLmgKaW5kZXggZmVlMThiMTMwMzgwMjNlMTRjZWExODBkYzA1YjM1NTA5
YWI3MGFiMC4uNWZiNTcxMDRjNzlhNzdjYTI5MDI5NmIwYWVmMjA2MjdjNmVhMjRkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDYWxsYmFjay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suaApAQCAtMzksOCArMzksOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLWJvb2wg
aW52b2tlQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBh
cmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZh
bHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci1ib29sIGludm9rZUNhbGxiYWNrKHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHRo
aXNPYmplY3QsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBj
YWxsYmFja1JldHVyblZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Citib29sIGludm9r
ZUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBhcmdjLCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZhbHVlLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7Citib29sIGludm9rZUNhbGxiYWNrKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gY2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gdGhpc09iamVjdCwgaW50
IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJu
VmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogZW51bSBDYWxsYmFja0FsbG93ZWRW
YWx1ZUZsYWcgewogICAgIENhbGxiYWNrQWxsb3dVbmRlZmluZWQgPSAxLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhEZXBlbmRlbnRSZXRhaW5lZC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhEZXBlbmRlbnRSZXRhaW5lZC5oCmluZGV4IGQ3ODc2MTI1
MmEzOTBiN2JlZjE1ZWFhZDYzZDA3ODgxZTk4Yzk3ODcuLjYyNzcwMGJhY2E2ODcxNjFiYzUzZWJl
NjY3Nzk3MzYwYzcyMjBkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RGVwZW5kZW50UmV0YWluZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERlcGVuZGVudFJldGFpbmVkLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi9kdG9h
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ0LDcgKzQ1LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcHJvcGVydHlO
YW1lKGNyZWF0ZVByb3BlcnR5TmFtZSgpKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3ZhbHVl
LmlzRW1wdHkoKSk7Ci0gICAgICAgIG1fdmFsdWUuZ2V0KCkuTWFrZVdlYWsodGhpcywgJlY4RGVw
ZW5kZW50UmV0YWluZWQ6OnZhbHVlV2Vha0NhbGxiYWNrKTsKKyAgICAgICAgbV92YWx1ZS5nZXQo
KS5NYWtlV2Vhayh0aGlzLCAmVjhEZXBlbmRlbnRSZXRhaW5lZDo6d2Vha0NhbGxiYWNrKTsKICAg
ICAgICAgaWYgKCFvd25lci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXRhaW4ob3duZXIpOwog
ICAgIH0KQEAgLTY5LDggKzcwLDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQobV9vd25lci5p
c0VtcHR5KCkgJiYgIW93bmVyLklzRW1wdHkoKSk7CiAgICAgICAgIEFTU0VSVCghbV92YWx1ZS5p
c0VtcHR5KCkpOwogICAgICAgICBvd25lci0+U2V0SGlkZGVuVmFsdWUobV9wcm9wZXJ0eU5hbWUu
Z2V0KCksIGdldCgpKTsKLSAgICAgICAgbV9vd25lciA9IG93bmVyOwotICAgICAgICBtX293bmVy
LmdldCgpLk1ha2VXZWFrKHRoaXMsICZWOERlcGVuZGVudFJldGFpbmVkOjpvd25lcldlYWtDYWxs
YmFjayk7CisgICAgICAgIG1fb3duZXIuc2V0KG93bmVyKTsKKyAgICAgICAgbV9vd25lci5nZXQo
KS5NYWtlV2Vhayh0aGlzLCAmVjhEZXBlbmRlbnRSZXRhaW5lZDo6d2Vha0NhbGxiYWNrKTsKICAg
ICB9CiAKIHByaXZhdGU6CkBAIC04MiwxOSArODMsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIFY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRkZW5SZWZlcmVuY2VOYW1lKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KG5hbWUuY2hhcmFjdGVyczgoKSksIG5hbWUubGVuZ3RoKCksIE5l
d1N0cmluZyk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgb3duZXJXZWFrQ2FsbGJhY2sodjg6
OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIHBhcmFtZXRlcikKKyAgICBzdGF0
aWMgdm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBvYmplY3QsIHZv
aWQqIHBhcmFtZXRlcikKICAgICB7CiAgICAgICAgIFY4RGVwZW5kZW50UmV0YWluZWQqIHZhbHVl
ID0gc3RhdGljX2Nhc3Q8VjhEZXBlbmRlbnRSZXRhaW5lZCo+KHBhcmFtZXRlcik7CiAgICAgICAg
IHZhbHVlLT5yZWxlYXNlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgdmFsdWVXZWFrQ2Fs
bGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIHBhcmFtZXRlcikK
LSAgICB7Ci0gICAgICAgIFY4RGVwZW5kZW50UmV0YWluZWQqIHZhbHVlID0gc3RhdGljX2Nhc3Q8
VjhEZXBlbmRlbnRSZXRhaW5lZCo+KHBhcmFtZXRlcik7Ci0gICAgICAgIC8vIFRoZSBvd25lciBj
YWxsYmFjayBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBmaXJzdCwgc2luY2UgaXQgcmV0YWlucyB0
aGUgdmFsdWUuCi0gICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsIHZhbHVlLT5pc0VtcHR5KCkp
OwotICAgIH0KLQogICAgIHZvaWQgcmVsZWFzZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fb3du
ZXIuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhN
dXRhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRp
b25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM1NjkzOWU1MjgxNzA3YzdmYTUyM2M3MzIzOTEw
NTllY2I3Yjk5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4TXV0YXRpb25DYWxsYmFjay5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2lu
Y2x1ZGUgIlY4TXV0YXRpb25DYWxsYmFjay5oIgorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Q2FsbGJhY2su
aCIKKyNpbmNsdWRlICJWOE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJWOE11dGF0aW9u
UmVjb3JkLmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVjhNdXRhdGlvbkNhbGxiYWNrOjpWOE11dGF0
aW9uQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYnNlcnZlciwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAg
ICA6IEFjdGl2ZURPTUNhbGxiYWNrKGNvbnRleHQpCisgICAgLCBtX2NhbGxiYWNrKG9ic2VydmVy
LCBjYWxsYmFjaykKKyAgICAsIG1fd29ybGRDb250ZXh0KFVzZUN1cnJlbnRXb3JsZCkKK3sKK30K
KworYm9vbCBWOE11dGF0aW9uQ2FsbGJhY2s6OmNhbGwoY29uc3QgVmVjdG9yPFJlZlB0cjxNdXRh
dGlvblJlY29yZD4gPiYgbXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK3sK
KyAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOworCisgICAgdjg6OkhhbmRsZTx2ODo6Q29u
dGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBt
X3dvcmxkQ29udGV4dCk7CisgICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7CisK
KyAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBtdXRhdGlvbnNBcnJheSA9IHY4OjpBcnJheTo6TmV3
KG11dGF0aW9ucy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbXV0YXRpb25z
LnNpemUoKTsgKytpKQorICAgICAgICBtdXRhdGlvbnNBcnJheS0+U2V0KHY4SW50ZWdlcihpKSwg
dG9WOChtdXRhdGlvbnMuYXQoaSkuZ2V0KCkpKTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBvYnNlcnZlckhhbmRsZSA9IHRvVjgob2JzZXJ2ZXIpOworICAgIGlmIChvYnNlcnZlckhhbmRs
ZS5Jc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGlu
ZygpKQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgaWYgKCFvYnNlcnZlckhhbmRsZS0+SXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0geworICAgICAgICBtdXRh
dGlvbnNBcnJheSwKKyAgICAgICAgb2JzZXJ2ZXJIYW5kbGUKKyAgICB9OworCisgICAgQVNTRVJU
KCFtX2NhbGxiYWNrLmlzRW1wdHkoKSk7CisKKyAgICBib29sIGNhbGxiYWNrUmV0dXJuVmFsdWUg
PSBmYWxzZTsKKyAgICByZXR1cm4gIWludm9rZUNhbGxiYWNrKG1fY2FsbGJhY2suZ2V0KCksIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qob2JzZXJ2ZXJIYW5kbGUpLCAyLCBhcmd2LCBjYWxs
YmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MTlmMzU0ZmNkYWZjMjExMmZiNDFjYjhjMzhlZDE2ZDcwNGY2YmY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNr
LmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJW
RVJTKQorCisjaWZuZGVmIFY4TXV0YXRpb25DYWxsYmFja19oCisjZGVmaW5lIFY4TXV0YXRpb25D
YWxsYmFja19oCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIk11
dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOERlcGVuZGVudFJldGFpbmVkLmgiCisjaW5j
bHVkZSAiV29ybGRDb250ZXh0SGFuZGxlLmgiCisjaW5jbHVkZSA8djguaD4KKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CisKK2NsYXNzIFY4TXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBNdXRhdGlv
bkNhbGxiYWNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFY4TXV0YXRpb25DYWxsYmFjaz4gY3JlYXRlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gb2JzZXJ2ZXIsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY2FsbGJhY2ssIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFY4TXV0YXRpb25DYWxsYmFjayhvYnNlcnZlciwgY2FsbGJhY2ssIGNvbnRleHQpKTsKKyAg
ICB9CisgICAgdmlydHVhbCBib29sIGNhbGwoY29uc3QgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJl
Y29yZD4gPiYsIE11dGF0aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKworIHByaXZhdGU6CisgICAg
VjhNdXRhdGlvbkNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIFY4RGVwZW5kZW50UmV0
YWluZWQgbV9jYWxsYmFjazsKKyAgICBXb3JsZENvbnRleHRIYW5kbGUgbV93b3JsZENvbnRleHQ7
Cit9OworCit9CisjZW5kaWYgLy8gVjhNdXRhdGlvbkNhbGxiYWNrX2gKKyNlbmRpZiAvLyBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWUzZTY4MDIyNGQ4Mjk5MmVhY2U4MDNjZDg2NGRkZTJh
NjE2Yjk4NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotCi0jaW5jbHVkZSAiVjhNdXRh
dGlvbkNhbGxiYWNrLmgiCi0KLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0j
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhDYWxsYmFjay5oIgotI2luY2x1ZGUg
IlY4TXV0YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgIlY4TXV0YXRpb25SZWNvcmQuaCIKLSNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1ib29sIFY4TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0
YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikK
LXsKLSAgICBBU1NFUlQobXV0YXRpb25zKTsKLSAgICBpZiAoIW11dGF0aW9ucykKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotCi0gICAgdjg6
OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dCk7Ci0gICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3Bl
KHY4Q29udGV4dCk7Ci0KLSAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBtdXRhdGlvbnNBcnJheSA9
IHY4OjpBcnJheTo6TmV3KG11dGF0aW9ucy0+c2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG11dGF0aW9ucy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG11dGF0aW9uc0FycmF5LT5T
ZXQodjhJbnRlZ2VyKGkpLCB0b1Y4KG11dGF0aW9ucy0+YXQoaSkuZ2V0KCkpKTsKLQotICAgIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBvYnNlcnZlckhhbmRsZSA9IHRvVjgob2JzZXJ2ZXIpOwotICAg
IGlmIChvYnNlcnZlckhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFpc1NjcmlwdENv
bnRyb2xsZXJUZXJtaW5hdGluZygpKQotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKCFvYnNlcnZlckhhbmRsZS0+SXNPYmplY3QoKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltd
ID0gewotICAgICAgICBtdXRhdGlvbnNBcnJheSwKLSAgICAgICAgb2JzZXJ2ZXJIYW5kbGUKLSAg
ICB9OwotCi0gICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgcmV0dXJu
ICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KG9ic2VydmVySGFuZGxlKSwgMiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAK
aW5kZXggNjhmNGM3YWE1YzI5YTM0Zjg2OGZkMzlkNTcwMmFiZTBkZDg0YjVjMS4uNTY0YTJiMDAx
OGNkOTliYmZlMjRjNzNjN2E4YzE4YjFkZDg5OWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHAKQEAgLTYwLDE0ICs2MCwxNCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNdXRhdGlv
bk9ic2VydmVyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgIGlm
ICghYXJnLT5Jc09iamVjdCgpKQogICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKFRZUEVf
TUlTTUFUQ0hfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKKyAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKLSAgICBSZWZQdHI8
TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShh
cmcsIGNvbnRleHQpOwotICAgIFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9IE11
dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpOworICAgIFJlZlB0cjxN
dXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKHdy
YXBwZXIsIGFyZy5Bczx2ODo6T2JqZWN0PigpLCBjb250ZXh0KTsKKyAgICBSZWZQdHI8TXV0YXRp
b25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2su
cmVsZWFzZSgpLCBjb250ZXh0KTsKIAotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
ciA9IGFyZ3MuSG9sZGVyKCk7CiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBw
ZXIsICZpbmZvLCBvYnNlcnZlci5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBw
ZXJGb3JET01PYmplY3Qob2JzZXJ2ZXIucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERPTVdy
YXBwZXI6OnNldEpTV3JhcHBlckZvckFjdGl2ZURPTU9iamVjdChvYnNlcnZlci5yZWxlYXNlKCks
IHdyYXBwZXIpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uQ2FsbGJhY2suaAppbmRleCAxMTkxOTdhYmUzNGIxZGE5MDRkNDIyYmJmOGUwZjFmNzdlNzc2
ZGYyLi43NjRmYWI5NjcyYTViMjRhZTM5YThkY2ViNjcyYjFlYWMxYTk3NTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTQyLDEzICs0MiwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBNdXRhdGlvblJlY29yZDsKIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXI7
CiAKLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4gPiBNdXRhdGlvblJlY29y
ZEFycmF5OwotCiBjbGFzcyBNdXRhdGlvbkNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0
YXRpb25DYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfk11dGF0aW9uQ2FsbGJhY2so
KSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5
KiwgTXV0YXRpb25PYnNlcnZlciopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY2FsbChjb25zdCBW
ZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+JiwgTXV0YXRpb25PYnNlcnZlciopID0gMDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNr
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmFlY2Q5YmU5ZTQxZGU0ZjMyZTQ2ZjlkMDViMGViZjJjZTQ4
NTBlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwz
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlv
bmFsPU1VVEFUSU9OX09CU0VSVkVSUywKLSAgICAgICAgQ2FsbGJhY2sKLSAgICBdIE11dGF0aW9u
Q2FsbGJhY2sgewotICAgICAgICBbQ3VzdG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGluIE11dGF0
aW9uUmVjb3JkQXJyYXkgbXV0YXRpb25zLCBpbiBNdXRhdGlvbk9ic2VydmVyIG9ic2VydmVyKTsK
LSAgICB9OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IGE0
MGQ1MDdmZTcwMDNhMDI0Y2FlNjRjOGNlYmY4ZjhiMzVlMWUzNWEuLjlhY2QxZTUwZWRmMjA5NThm
YjVhM2M3ZWM5YTgwN2ZhYWE1NzMyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlci5jcHAKQEAgLTU3LDE0ICs1NywxNyBAQCBzdHJ1Y3QgTXV0YXRpb25PYnNlcnZlcjo6T2Jz
ZXJ2ZXJMZXNzVGhhbiB7CiAgICAgfQogfTsKIAotUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVy
PiBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBj
YWxsYmFjaykKK1Bhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gTXV0YXRpb25PYnNlcnZlcjo6
Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2ssIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spKTsKKyAgICBS
ZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBhZG9wdFJlZihuZXcgTXV0YXRpb25P
YnNlcnZlcihjYWxsYmFjaywgY29udGV4dCkpOworICAgIG9ic2VydmVyLT5zdXNwZW5kSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gb2JzZXJ2ZXIucmVsZWFzZSgpOwogfQogCi1NdXRhdGlvbk9ic2Vy
dmVyOjpNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJh
Y2spCi0gICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25PYnNlcnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQs
IHRoaXMpCisgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogICAgICwgbV9wcmlvcml0eShzX29i
c2VydmVyUHJpb3JpdHkrKykKIHsKIH0KQEAgLTE0MSwxMiArMTQ0LDE0IEBAIHZvaWQgTXV0YXRp
b25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24qIHJlZ2lzdHJhCiB7CiAgICAgQVNTRVJUKCFtX3JlZ2lzdHJhdGlvbnMuY29udGFpbnMocmVn
aXN0cmF0aW9uKSk7CiAgICAgbV9yZWdpc3RyYXRpb25zLmFkZChyZWdpc3RyYXRpb24pOworICAg
IHNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAogdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpv
YnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlv
bikKIHsKICAgICBBU1NFUlQobV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikp
OwogICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uKTsKKyAgICB1bnNldFBl
bmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAogdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxNdXRhdGlv
bk9ic2VydmVyPiA+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7CkBAIC0xODUsMTAgKzE5MCw3IEBAIHZv
aWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcigpCiAgICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+
ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLQotICAgIG1fY2FsbGJh
Y2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlzKTsKKyAgICBtX2NhbGxiYWNrLT5jYWxsKHRh
a2VSZWNvcmRzKCksIHRoaXMpOwogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJB
bGxNdXRhdGlvbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKaW5kZXggZmFk
YjM3OGQxZWZkZWJkMWNiY2UzMjQ3ZWQ5ZjlmYjEwMzc3MzQwMS4uMDVhYjdlZjNjOTE1Zjk4YWQx
YzBiYjM0ODIzYzNjYWMzOWI4NTNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
ci5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQog
CisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBA
IC00OCwxMyArNDksMTQgQEAgY2xhc3MgTXV0YXRpb25DYWxsYmFjazsKIGNsYXNzIE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBNdXRhdGlvblJlY29yZDsKIGNsYXNzIE5vZGU7
CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgTXV0YXRpb25PYnNlcnZlck9wdGlvbnM7CiB0
eXBlZGVmIHVuc2lnbmVkIGNoYXIgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM7CiAKLWNs
YXNzIE11dGF0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbk9ic2VydmVy
PiB7CitjbGFzcyBNdXRhdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25P
YnNlcnZlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgogICAgIGVudW0gTXV0
YXRpb25UeXBlIHsKICAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLApAQCAtNzQsMTAgKzc2LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAogICAg
IH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUGFz
c1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TXV0YXRp
b25PYnNlcnZlcj4gY3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRpb25zKCk7
CiAKLSAgICB+TXV0YXRpb25PYnNlcnZlcigpOworICAgIHZpcnR1YWwgfk11dGF0aW9uT2JzZXJ2
ZXIoKTsKIAogICAgIHZvaWQgb2JzZXJ2ZShOb2RlKiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNv
cmRzKCk7CkBAIC05MCw3ICs5Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RydWN0IE9i
c2VydmVyTGVzc1RoYW47CiAKLSAgICBleHBsaWNpdCBNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQ
dHI8TXV0YXRpb25DYWxsYmFjaz4pOworICAgIE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxN
dXRhdGlvbkNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHZvaWQgZGVs
aXZlcigpOwogCiAgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbAppbmRleCAw
YWU5OTJlNmRhNzVlNTE1NDNmNzc5OGI3MTYwNjU5OGQxNzlhYzIxLi4yNjUyN2Q0MzhkZmUyZjc5
ZjcxNmM5NDA1ZjllNzQwNTU4NjM1ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuaWRsCkBAIC0zMCw2ICszMCw3IEBACiAKIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZh
Y2UgWworICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIENvbmRpdGlvbmFsPU1VVEFU
SU9OX09CU0VSVkVSUywKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIENvbnN0
cnVjdG9yUGFyYW1ldGVycz0xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164987</attachid>
            <date>2012-09-20 14:35:52 -0700</date>
            <delta_ts>2013-01-28 13:59:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93661-20120920143517.patch</filename>
            <type>text/plain</type>
            <size>63347</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2ZkZmYxOThmYmVhYzY0NjkzYTE4OTgwZjEzNzZkMWM0MjEyN2I1Li5lZjZkZjkwMmQ2ODYxYzg3
ZDQyNDkyYzRiYTRmYjdlNGI3OTllZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wOS0yMCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBzaG91bGQgbm90IGNyZWF0ZSBjaXJj
dWxhciwgbGVha3kgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvcnQgcmVtb3ZlRGlyZWN0IGZvciB1c2UgaW4gV2ViQ29yZSBiaW5k
aW5ncy4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAg
ICAoSlNPYmplY3QpOgorCiAyMDEyLTA5LTE4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFdURjo6SGFzVHJpdmlhbERlc3RydWN0b3IgaW5z
dGVhZCBvZiBjb21waWxlci1zcGVjaWZpYyB2ZXJzaW9ucyBpbiBKU0M6Ok5lZWRzRGVzdHJ1Y3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGY5MTAxOTNjMWRhMjZhNDUzYTQ1YzdiZGVhMzZmNDc0NmY2MDA1MGQu
LmQ1YTI5NTMxMzA2OWExMDg5ODgwOWIzYjNkNTA2ODYyZmYyZjY4NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw3NiBAQAorMjAxMi0wOS0yMCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBzaG91bGQgbm90IGNyZWF0ZSBj
aXJjdWxhciwgbGVha3kgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTM2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgVjhEZXBlbmRlbnRSZXRhaW5lZCBhbmQgSlNEZXBlbmRlbnRS
ZXRhaW5lZCB0byBmaXggdGhlIG1lbW9yeSBsZWFrcyBpbiBNdXRhdGlvbk9ic2VydmVyIHdoZW4K
KyAgICAgICAgY3JlYXRpbmcgY2lyY3VsYXIgcmVmZXJlbmNlcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaDogQWRkZWQuCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFVzZUpTQy5jbWFrZToKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
ZXBlbmRlbnRSZXRhaW5lZC5oOiBGaXggYnJva2VuIGNvbXBpbGUuIFRoZSB1c2FnZSBvZiBwdXRE
aXJlY3QgYW5kIHJlbW92ZURpcmVjdCB3YXMgd3JvbmcuCisgICAgICAgIChXZWJDb3JlOjpKU0Rl
cGVuZGVudFJldGFpbmVkOjpKU0RlcGVuZGVudFJldGFpbmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRGVwZW5kZW50UmV0YWluZWQ6OnJldGFpbik6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcGVu
ZGVudFJldGFpbmVkOjpyZWxlYXNlKToKKyAgICAgICAgKEpTRGVwZW5kZW50UmV0YWluZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHA6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJh
Y2s6OkpTTXV0YXRpb25DYWxsYmFjayk6IEltcGxlbWVudGF0aW9uIG9mIHdoYXQgd2FzIHByZXZp
b3VzbHkgZ2VuZXJhdGVkIGZyb20gdGhlIElETC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRp
b25DYWxsYmFjazo6Y2FsbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrLmg6CisgICAgICAgIChKU011dGF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlv
bkNhbGxiYWNrOjpzZXRPd25lcik6IFNldCB0aGUgR0Mgb3duZXIuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTTXV0YXRpb25PYnNlcnZlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhDYWxsYmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppbnZva2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhDYWxsYmFjay5oOiBDaGFuZ2UgaW52b2tlQ2FsbGJhY2sgdG8gdGFrZSBhIHY4OjpI
YW5kbGUgaW5zdGVhZCBvZiBhIHY4OjpMb2NhbC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4RGVwZW5kZW50UmV0YWluZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4RGVwZW5kZW50UmV0YWluZWQ6OlY4RGVwZW5kZW50UmV0YWluZWQpOiBGaXggYnJva2VuIGNv
bXBpbGUgd2l0aCBhc3NpZ25tZW50IHRvIG1fb3duZXIgdGhhdCBzaG91bGQgaGF2ZSB1c2VkIHNl
dCgpLgorICAgICAgICAoV2ViQ29yZTo6VjhEZXBlbmRlbnRSZXRhaW5lZDo6cmV0YWluKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4RGVwZW5kZW50UmV0YWluZWQ6OndlYWtDYWxsYmFjayk6IEl0IHdh
cyB3cm9uZyB0byBoYXZlIHR3byBjYWxsYmFja3MuIFY4IG1heSBjYWxsIHRoZXNlIG91dCBvZiBv
cmRlciBvbiBzaHV0ZG93bi4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJh
Y2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhN
dXRhdGlvbkNhbGxiYWNrOjpWOE11dGF0aW9uQ2FsbGJhY2spOiBJbXBsZW1lbnRhdGlvbiBvZiB3
aGF0IHdhcyBwcmV2aW91c2x5IGdlbmVyYXRlZCBmcm9tIHRoZSBJREwuCisgICAgICAgIChXZWJD
b3JlOjpWOE11dGF0aW9uQ2FsbGJhY2s6OmNhbGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
TXV0YXRpb25DYWxsYmFjay5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChWOE11dGF0
aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVh
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVy
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNdXRhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5pZGw6IFJlbW92ZWQuCisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOiBNYWRlIGludG8gYW4gQWN0aXZlRE9NT2JqZWN0IHRvIHByZXZl
bnQgdGhlIHdyYXBwZXJzIGZyb20gYmVpbmcgY29sbGVjdGVkIHNvIHRoZXkncmUgYWNjZXNzaWJs
ZSBpbiBjYWxsYmFja3MuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25PYnNlcnZl
cik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKToKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25PYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsOgorCiAyMDEyLTA5LTE4ICBKb2huIEouIEJhcnRv
biAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
ZXQgZm9jdXMgb24gdGhlIEV4dGVuc2lvblBhbmVsJ3MgaWZyYW1lIHdoZW4gaXQgaXMgc2VsZWN0
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKaW5kZXggNGQ1NDM2NGYwYWNlMzg5MTk3YWQwNzEzNTZhY2QwYmFlNThjMjNmYS4uYjVkY2M1
MjFkYzYwODRiYmQ2YjJiNjNhYWFhZjdjMGVmMjQ4ZDI5ZCAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTI4Niw2ICsyODYsNyBA
QCBFWFBPUlRTCiAgICAgP3JlbGVhc2VEZWNvbW1pdHRlZEBPU0FsbG9jYXRvckBXVEZAQFNBWFBB
WElAWgogICAgID9yZWxlYXNlRXhlY3V0YWJsZU1lbW9yeUBKU0dsb2JhbERhdGFASlNDQEBRQUVY
WFoKICAgICA/cmVtb3ZlQmxvY2tATWFya2VkQWxsb2NhdG9yQEpTQ0BAUUFFWFBBVk1hcmtlZEJs
b2NrQDJAQFoKKyAgICA/cmVtb3ZlRGlyZWN0QEpTT2JqZWN0QEpTQ0BAUUFFX05BQVZKU0dsb2Jh
bERhdGFAMkBWUHJvcGVydHlOYW1lQDJAQFoKICAgICA/cmVwb3J0QWJhbmRvbmVkT2JqZWN0R3Jh
cGhASGVhcEBKU0NAQFFBRVhYWgogICAgID9yZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUBI
ZWFwQEpTQ0BAQUFFWElAWgogICAgID9yZXNlcnZlQW5kQ29tbWl0QE9TQWxsb2NhdG9yQFdURkBA
U0FQQVhJVzRVc2FnZUAxMkBfTjExQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCmluZGV4IDhiNTI5MTViNmVjMjk2N2I0OGYxN2ZiZmM4NDBlMGY2YjMyNDA4ZWYuLjYz
MjQwNjMxMzQ1YWE5YzgzMzE3OTM0ZTczNmFjYTY0ZjViMTJlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtNDMwLDcgKzQzMCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHZvaWQgdHJhbnNpdGlvblRvKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVy
ZSopOwogCi0gICAgICAgIGJvb2wgcmVtb3ZlRGlyZWN0KEpTR2xvYmFsRGF0YSYsIFByb3BlcnR5
TmFtZSk7IC8vIFJldHVybiB0cnVlIGlmIGFueXRoaW5nIGlzIHJlbW92ZWQuCisgICAgICAgIEpT
X0VYUE9SVF9QUklWQVRFIGJvb2wgcmVtb3ZlRGlyZWN0KEpTR2xvYmFsRGF0YSYsIFByb3BlcnR5
TmFtZSk7IC8vIFJldHVybiB0cnVlIGlmIGFueXRoaW5nIGlzIHJlbW92ZWQuCiAgICAgICAgIGJv
b2wgaGFzQ3VzdG9tUHJvcGVydGllcygpIHsgcmV0dXJuIHN0cnVjdHVyZSgpLT5kaWRUcmFuc2l0
aW9uKCk7IH0KICAgICAgICAgYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgeyByZXR1
cm4gc3RydWN0dXJlKCktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGY3NGJhMmQyOGY3YjQ4NTI2NzYwODYwYThjOTdlMDEyYTA1NGE0Mjcu
LjRhYTg1MjNiZGU0YmU1MTVhZmMzNjY5YTUyYTU1YTc3ZGEyMjE0MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0zNjQsNyArMzY0LDYgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgZG9t
L01lc3NhZ2VFdmVudC5pZGwKICAgICBkb20vTWVzc2FnZVBvcnQuaWRsCiAgICAgZG9tL01vdXNl
RXZlbnQuaWRsCi0gICAgZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCiAgICAgZG9tL011dGF0aW9u
RXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCiAgICAgZG9tL011dGF0aW9u
UmVjb3JkLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGYwMGQ1NTY4YjkwMTU3
Nzk1NzVhNzNjYjA2YmY3N2RmZDM3MTUzYzcuLjViZjE2ZmRiZGY1OTU1YjIyMmVlNWVkZmM2NjQ0
MGNkYmZhZTZkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI1Miw3ICsyNTIs
NiBAQAogI2luY2x1ZGUgIkpTTWV0YWRhdGEuY3BwIgogI2luY2x1ZGUgIkpTTWV0YWRhdGFDYWxs
YmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmNwcCIKLSNpbmNsdWRlICJKU011dGF0
aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25FdmVudC5jcHAiCiAjaW5jbHVk
ZSAiSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmNw
cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQxZjA5NzJjZDE3OTg5MmZjNTRi
ODllNTZhZWMxZWVlM2JlMzNjZDUuLjdmZTRmZTJlYzU3MmI4NjE5YzQ0ZjYxY2U0MDc0MDk0Mjg5
NDIxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjMyLDcgKzIzMiw2IEBA
IEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlUG9ydC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L01vdXNlRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlv
blJlY29yZC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcnVudGltZS9Qcml2YXRlTmFtZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcnVudGltZS9Qcml2YXRlTmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZDRiNGRlMzAwMzVjM2M0OTE2
YThmY2Q0OWM2NTQxYjZmNDFmYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1ByaXZhdGVOYW1lLmgKQEAgLTAsMCArMSw0IEBACisj
aWZuZGVmIFdlYkNvcmVfRldEX1ByaXZhdGVOYW1lX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfUHJp
dmF0ZU5hbWVfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1ByaXZhdGVOYW1lLmg+CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNhNmRhYmNmNTE0NDI2MWI0MDk3
NmQ1YTA5YWNhNzJhZTNjODg0NTYuLjE4NDQxM2U3NWNjYmVkYmE3MjEwZmM1MDYzOTE5OTkyOWYy
Nzk0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTM5LDggKzUzOSw2IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01p
Y3JvRGF0YUl0ZW1WYWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVu
dC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmggXAotCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCi0JRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU011dGF0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRp
b25FdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5j
cHAgXApAQCAtMTM1Niw3ICsxMzU0LDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJD
b3JlKS9kb20vTWVzc2FnZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTWVzc2FnZVBvcnQu
aWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCi0JJChXZWJDb3JlKS9kb20v
TXV0YXRpb25DYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uRXZlbnQuaWRs
IFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAJJChXZWJDb3JlKS9k
b20vTXV0YXRpb25SZWNvcmQuaWRsIFwKQEAgLTIzMzEsNyArMjMyOCw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
aCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0
b20uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2su
aCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDJjY2EyMWU5NDI3NmNmMWFhN2I1ODNlYWYwNWU2NjhmYzI5ZDk3Y2YuLmQ0
NzdiN2M0MmMyODI0NmZkMjczMzk4ZTE5MDM2ODA5ZTdkYzFhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
MTYwLDcgKzE2MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQ
b3J0Q3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBc
CiAgICAgIGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCi0gICAg
IGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAorICAgICBiaW5kaW5n
cy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3Vz
dG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNt
YWtlCmluZGV4IDNlNjBhM2U4ODFmMzYwOWJmYzQ0M2FhOTJhZDA1YmFkZDUwNjIyNDAuLjc1YjJm
YzhlOWFiYmZmNjVhNThkMWRjN2M0YmNlNWEyODdkZjc4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1VzZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAg
LTExMSw3ICsxMTEsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5n
cy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQ
b3J0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKyAgICBi
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKaW5k
ZXggNWNkNDJjODAzZWQ2N2RjZWRmNmU2NWY4MmVlYzBkOTkwYzEwNzEyMC4uNzEyMDJlYWU2MzY3
MTRkY2JmYjMxODRjMzM0YWVlOWM3M2IxMmE1MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
VXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKQEAgLTEzMCw3ICsx
MzAsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVz
c2FnZVBvcnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRl
bVZhbHVlQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFjay5j
cHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBkNmZmNzc1NzU2ZDU3NzNjZjU2MzJkZDIzMGUxM2YxYTgxMDFhMjM2Li45MWExMDRmMTgw
MDA4NDQ4ODU2YzFjNDVlMmMzMjUzZmM2NDYwNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDA1
LDcgKzEwMDUsNiBAQAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlRXZlbnQuaWRsJywKICAgICAg
ICAgICAgICdkb20vTWVzc2FnZVBvcnQuaWRsJywKICAgICAgICAgICAgICdkb20vTW91c2VFdmVu
dC5pZGwnLAotICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCcsCiAgICAgICAg
ICAgICAnZG9tL011dGF0aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25P
YnNlcnZlci5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvblJlY29yZC5pZGwnLApAQCAt
MjA5MCw3ICsyMDg5LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3Rv
bS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAnLApAQCAtMjIxNSw2ICsyMjE1LDggQEAK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgnLAorICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9OUE9i
amVjdFdyYXBwZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9OUE9iamVjdFdyYXBw
ZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAnLApAQCAtMjQw
NSw3ICsyNDA3LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdl
RXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNz
YWdlUG9ydEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwJywKQEAgLTc3
NDEsOCArNzc0Miw2IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01ldGFkYXRhQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5o
JywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25DYWxsYmFjay5jcHAnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uRXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTg5NmExMTlkYzJmZjk4ODExYjIzNTg1
MWRlMzJmMGQwNGMzNWE2Yy4uMzUyMGZiZDFmMjg0MWE3Y2I2MTFmNzY4MDM3OTA5NjMxYWM3NjNj
MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTExNTk0LDYyICsxMTU5NCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uQ2FsbGJh
Y2suaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U011dGF0aW9uRXZlbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTY5
MzUwLDcgKzY5Mjk0LDExIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5o
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIwZGI4ZjQ0NDE0Y2Vh
ZWE0Y2Y1OGRlMzExNGNiN2MxZGI3Nzg1MmIuLjhkYWE5MWNmZDZjOTIxNjk0ZTIxMWE5MTMyZWMw
MmFjOGNmZWZmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU4NDQsMTIgKzU4NDQsOSBAQAogCQlDNkYwOTAwQTE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9u
Q2FsbGJhY2suaCAqLzsgfTsKIAkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9u
T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovOyB9
OwogCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDYxNDMyN0I2
MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDNkYwOTAyODE0MzI3RDRGMDA2ODU4NDkgLyogSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2su
Y3BwICovOyB9OwotCQlDNkYwOTAyOTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYw
OTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJCUM2
RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjQxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CiAJCUM2RjA5MDJEMTQzMjdE
NEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcCAqLzsgfTsKLQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNh
bGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0IC8qIEVu
dHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsKIAkJQ0Ez
QkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1
MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1
MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY1NjMs
NiArNjU2MCw4IEBACiAJCUZGRDVCOTdBMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0
eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLzsg
fTsKIAkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc4MTM1
Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkZEODZFNzgxNUY5NTgzNjAwMDQ3MjMz
IC8qIEpTRGVwZW5kZW50UmV0YWluZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZGRDg2RTc3MTVGOTU4MzYwMDA0NzIzMyAvKiBKU0RlcGVuZGVudFJl
dGFpbmVkLmggKi87IH07CisJCUZGRDg2RUJBMTYwQTlCOTcwMDA0NzIzMyAvKiBKU011dGF0aW9u
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkZEODZFQjgxNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi87
IH07CisJCUZGRDg2RUJCMTYwQTlCOTcwMDA0NzIzMyAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDg2RUI5MTYw
QTlCOTcwMDA0NzIzMyAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKIC8qIEVuZCBQQlhC
dWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2Vj
dGlvbiAqLwpAQCAtMTMxNzcsMTYgKzEzMTc2LDEyIEBACiAJCUM2RjA4RkM3MTQzMTAwMEQwMDY4
NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTTXV0YXRpb25SZWNvcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNkYwOEZDODE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uUmVjb3JkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDAxMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlv
bkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMDIxNDMyN0I2MTAw
Njg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE11
dGF0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAw
NTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4
NDkgLyogTXV0YXRpb25PYnNlcnZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRp
b25PYnNlcnZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDIwMTQz
MjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25D
YWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMjQxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkg
LyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
dXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnRyeUJhc2UuY3BwOyBwYXRoID0gTW9kdWxlcy9maWxl
c3lzdGVtL0VudHJ5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JG
NjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTAsNiArMTQwMDUsOCBAQAogCQlGRkQ1
Qjk3NzEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRkQ4NkU3
NzE1Rjk1ODM2MDAwNDcyMzMgLyogSlNEZXBlbmRlbnRSZXRhaW5lZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RlcGVuZGVudFJldGFpbmVkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUZGRDg2RUI4MTYwQTlCOTcwMDA0NzIzMyAvKiBKU011dGF0aW9uQ2Fs
bGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlv
bkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkZEODZFQjkxNjBB
OUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
RnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTg5NjIsOCArMTg5NTksNiBAQAog
CQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJCQkJ
RkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLAogCQkJCUZF
ODBEQTYyMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8sCi0JCQkJQzZGMDkw
MjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8sCi0JCQkJQzZG
MDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovLAogCQkJCUM2
RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJ
CUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLywKIAkJ
CQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8sCkBA
IC0yMDE5Nyw2ICsyMDE5Miw4IEBACiAJCQkJNDlCMzc2MEIxNUM2QzY4NDAwNTkxMzFEIC8qIEFy
cmF5VmFsdWUuaCAqLywKIAkJCQk5NzNBQTNGMjE1RDA4OEYwMDBFMzhBODUgLyogQmluZGluZ1N0
YXRlLmNwcCAqLywKIAkJCQk5NzNBQTNGMzE1RDA4OEYwMDBFMzhBODUgLyogQmluZGluZ1N0YXRl
LmggKi8sCisJCQkJRkZEODZFQjgxNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5jcHAgKi8sCisJCQkJRkZEODZFQjkxNjBBOUI5NzAwMDQ3MjMzIC8qIEpTTXV0YXRpb25DYWxs
YmFjay5oICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRT
b3VyY2VQcm92aWRlci5oICovLAogCQkJCTkzRjhCMzA2MEEzMDBGRUEwMEY2MUFCOCAvKiBDb2Rl
R2VuZXJhdG9ySlMucG0gKi8sCiAJCQkJMzEyRDY3QjAxNTM1NjkxRjAwNTYzRDBEIC8qIERpY3Rp
b25hcnkuY3BwICovLApAQCAtMjA0MTgsNyArMjA0MTUsNiBAQAogCQkJCUUxQURFRDQ2MEU3NkI4
REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCAqLywKIAkJCQk0MUY1ODRDNjEw
NDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oICovLAogCQkJCTEwNTk0NTcy
MTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgKi8sCi0J
CQkJQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5j
cHAgKi8sCiAJCQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZl
ckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNUYwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWRO
b2RlTWFwQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNO
b2RlQ3VzdG9tLmNwcCAqLywKQEAgLTIxNzg1LDcgKzIxNzgxLDYgQEAKIAkJCQk4NTAzMUIzMTBB
NDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxhdGVkRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjMy
MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZVJlbGF0ZWRFdmVudC5oICovLAogCQkJCUM2RjA5MDAx
MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggKi8sCi0JCQkJQzZGMDkwMDIx
NDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaWRsICovLAogCQkJCTg1MDMxQjMz
MEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzNDBB
NDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5oICovLAogCQkJCTkzRUVDMUYzMDlDMjg3
NzcwMEM1MTVEMSAvKiBNdXRhdGlvbkV2ZW50LmlkbCAqLywKQEAgLTI0MDkzLDcgKzI0MDg4LDcg
QEAKIAkJCQk4OTg3ODVCOTEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxMDU5NDU3QTE1QjQyQTQzMDA0RDM3RkQgLyogSlNNaWNyb0Rh
dGFJdGVtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNB
NSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUM2RjA5MDI5MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUZGRDg2
RUJCMTYwQTlCOTcwMDA0NzIzMyAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA4RkNBMTQzMTAwMEQwMDY4NTg0OSAvKiBK
U011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MzY3LDggKzI3MzYyLDcgQEAK
IAkJCQkxMDU5NDU3NzE1QjQyQTBEMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTA1OTQ1NzMxNUI0Mjk1MzAwNEQzN0ZEIC8qIEpTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NjYyOUQyMDlEQTJC
NDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkw
MjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlDNkYwOTE4NTE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZGRDg2RUJBMTYwQTlCOTcwMDA0NzIzMyAvKiBK
U011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkIwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTTXV0YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYw
OTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUM2RjA5MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCAzMzYxOWI1MzVmNzQxODVlN2QwNDhhNzg2
ZWU5ZGM5OGFkOTMwNDlkLi5kYzJkOGJkMzY1MTUyOWQwMzgxMDYyNDQ5NjM5ZTU5OGFjNzI4NTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQAogI2luY2x1ZGUgIkpTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUg
IkpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOYW1lZE5vZGVNYXBD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcGVuZGVudFJldGFpbmVkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RlcGVuZGVudFJldGFpbmVkLmgKaW5kZXggZmM0ZThmMzFmM2U0
ZjZmYmY4MDBjMmJmYmYxYTkzNDY4OTYyNDMxMC4uZTgyODMzYTExODZjMDg5NzhiYWVjODdlYTNk
NmQ5MDU1ZDQ5NmJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
ZXBlbmRlbnRSZXRhaW5lZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVw
ZW5kZW50UmV0YWluZWQuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBKU0RlcGVuZGVudFJl
dGFpbmVkX2gKICNkZWZpbmUgSlNEZXBlbmRlbnRSZXRhaW5lZF9oCiAKKyNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL1ByaXZhdGVOYW1lLmg+CkBAIC0zNiw4
ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNEZXBlbmRlbnRSZXRhaW5l
ZCB7CiBwdWJsaWM6Ci0gICAgSlNEZXBlbmRlbnRSZXRhaW5lZChKU0M6OkpTT2JqZWN0KiBvd25l
ciwgSlNDOjpKU09iamVjdCogdmFsdWUpCisgICAgSlNEZXBlbmRlbnRSZXRhaW5lZChKU0M6OkpT
T2JqZWN0KiBvd25lciwgSlNDOjpKU09iamVjdCogdmFsdWUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKKyAgICAgICAgLCBtX2dsb2Jh
bE9iamVjdChnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBBU1NFUlQodmFsdWUpOwogICAg
ICAgICBpZiAob3duZXIpCkBAIC02NCw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KCFtX293bmVyICYmIG93bmVyKTsKICAgICAgICAgQVNTRVJUKG1fdmFsdWUpOwogICAgICAgICBt
X293bmVyID0gSlNDOjpQYXNzV2VhazxKU0M6OkpTT2JqZWN0Pihvd25lcik7Ci0gICAgICAgIG1f
b3duZXItPnB1dERpcmVjdChtX3Byb3BlcnR5TmFtZSwgZ2V0KCkpOworICAgICAgICBtX293bmVy
LT5wdXREaXJlY3QobV9nbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgbV9wcm9wZXJ0eU5hbWUs
IGdldCgpKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC03Miw3ICs3NCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZWxlYXNlKCkKICAgICB7CiAgICAgICAgIGlmIChtX293bmVyKQotICAgICAgICAg
ICAgbV9vd25lci0+cmVtb3ZlRGlyZWN0KG1fcHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIG1f
b3duZXItPnJlbW92ZURpcmVjdChtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBtX3Byb3Bl
cnR5TmFtZSk7CiAgICAgICAgIG1fdmFsdWUuY2xlYXIoKTsKICAgICAgICAgbV9vd25lci5jbGVh
cigpOwogICAgIH0KQEAgLTgwLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBKU0M6OldlYWs8SlND
OjpKU09iamVjdD4gbV9vd25lcjsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV92YWx1
ZTsKICAgICBKU0M6OlByaXZhdGVOYW1lIG1fcHJvcGVydHlOYW1lOworICAgIEpTQzo6V2VhazxK
U0RPTUdsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9u
Q2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MjQ3ZGQ4MWI5ZTllZDI3YjJiYzkwZDUzNjRiMTMyMDk0YzJj
YjdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRh
dGlvbkNhbGxiYWNrLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxs
YmFjay5oIgorCisjaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKKyNpbmNsdWRlICJKU0RPTVdp
bmRvd0Jhc2UuaCIKKyNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJK
U011dGF0aW9uUmVjb3JkLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSlNNdXRhdGlvbkNhbGxiYWNrOjpKU011dGF0aW9uQ2FsbGJh
Y2soSlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
ICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgLCBtX2NhbGxiYWNrKDAsIGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpCisgICAg
LCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KQoreworfQorCitib29sIEpTTXV0YXRpb25DYWxsYmFjazo6Y2FsbChjb25zdCBWZWN0b3I8UmVm
UHRyPE11dGF0aW9uUmVjb3JkPiA+JiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2Vy
dmVyKQoreworICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBSZWZQdHI8SlNNdXRhdGlvbkNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOworCisg
ICAgSlNDYWxsYmFja0RhdGEgZGF0YShtX2NhbGxiYWNrLmdldCgpLCBtX2dsb2JhbE9iamVjdC5n
ZXQoKSk7CisKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vbkpT
R2xvYmFsRGF0YSgpKTsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGRhdGEuZ2xvYmFsT2JqZWN0
KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIG11dGF0aW9uTGlz
dDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11dGF0aW9ucy5zaXplKCk7ICsraSkKKyAg
ICAgICAgbXV0YXRpb25MaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGRhdGEuZ2xvYmFsT2JqZWN0KCks
IG11dGF0aW9ucy5hdChpKS5nZXQoKSkpOworCisgICAgSlNWYWx1ZSBqc09ic2VydmVyID0gdG9K
UyhleGVjLCBkYXRhLmdsb2JhbE9iamVjdCgpLCBvYnNlcnZlcik7CisKKyAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEFycmF5KGV4ZWMsIGRh
dGEuZ2xvYmFsT2JqZWN0KCksIG11dGF0aW9uTGlzdCkpOworICAgIGFyZ3MuYXBwZW5kKGpzT2Jz
ZXJ2ZXIpOworCisgICAgYm9vbCByYWlzZWRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICBkYXRhLmlu
dm9rZUNhbGxiYWNrKGpzT2JzZXJ2ZXIsIGFyZ3MsICZyYWlzZWRFeGNlcHRpb24pOworICAgIHJl
dHVybiAhcmFpc2VkRXhjZXB0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDBhNmRiNjBiNjFj
ODI0NTRmMzlhZGIzYjEzNWM4ZjIyMDM0YWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKyNpZm5kZWYgSlNNdXRhdGlvbkNhbGxiYWNrX2gKKyNkZWZpbmUgSlNNdXRhdGlv
bkNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRl
ICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNEZXBlbmRlbnRSZXRhaW5lZC5oIgorI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgSlNNdXRhdGlvbkNhbGxiYWNrIDogcHVibGljIE11dGF0aW9uQ2FsbGJhY2ssIHB1YmxpYyBB
Y3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNNdXRh
dGlvbkNhbGxiYWNrPiBjcmVhdGUoSlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU011
dGF0aW9uQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpOworICAgIH0KKyAgICB2aXJ0
dWFsIGJvb2wgY2FsbChjb25zdCBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+JiwgTXV0
YXRpb25PYnNlcnZlciopIE9WRVJSSURFOworCisgICAgdm9pZCBzZXRPd25lcihKU09iamVjdCog
b2JzZXJ2ZXIpIHsgbV9jYWxsYmFjay5yZXRhaW4ob2JzZXJ2ZXIpOyB9CisKKyBwcml2YXRlOgor
ICAgIEpTTXV0YXRpb25DYWxsYmFjayhKU09iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisK
KyAgICBKU0RlcGVuZGVudFJldGFpbmVkIG1fY2FsbGJhY2s7CisgICAgSlNDOjpTdHJvbmc8SlNE
T01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2RlN2I3OTQ2YWUxYzZkY2Y5
NzUzOGM3YjJhZDM1OTY0ZGQwNDg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFj
a0N1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgIkpTTXV0
YXRpb25DYWxsYmFjay5oIgotCi0jaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCi0jaW5jbHVk
ZSAiSlNNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVkZSAiSlNNdXRhdGlvblJlY29yZC5oIgot
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWJvb2wgSlNNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5
KiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQotewotICAgIGlmICghY2Fu
SW52b2tlQ2FsbGJhY2soKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBSZWZQdHI8SlNN
dXRhdGlvbkNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOwotCi0gICAgSlNMb2NrSG9sZGVyIGxvY2so
SlNET01XaW5kb3dCYXNlOjpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0KLSAgICBFeGVjU3RhdGUq
IGV4ZWMgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0KLSAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBtdXRhdGlvbkxpc3Q7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtdXRhdGlvbnMtPnNpemUoKTsgKytpKQotICAgICAgICBtdXRhdGlvbkxpc3QuYXBwZW5kKHRv
SlMoZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3QoKSwgbXV0YXRpb25zLT5hdChpKS5nZXQoKSkp
OwotCi0gICAgSlNWYWx1ZSBqc09ic2VydmVyID0gdG9KUyhleGVjLCBtX2RhdGEtPmdsb2JhbE9i
amVjdCgpLCBvYnNlcnZlcik7Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAg
IGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEFycmF5KGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCks
IG11dGF0aW9uTGlzdCkpOwotICAgIGFyZ3MuYXBwZW5kKGpzT2JzZXJ2ZXIpOwotCi0gICAgYm9v
bCByYWlzZWRFeGNlcHRpb24gPSBmYWxzZTsKLSAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGpz
T2JzZXJ2ZXIsIGFyZ3MsICZyYWlzZWRFeGNlcHRpb24pOwotICAgIHJldHVybiAhcmFpc2VkRXhj
ZXB0aW9uOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
TVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggYWI1NTYwZDgwY2M5N2M0MzAx
YzdmNTBhZTE0MDg0MTdmZTBjYjBiMi4uZjAzOGE1ZDU4YjUzMDAzYWY0MThhMWZlODQwZmYyNGU5
NWZmZTUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC01NCw4ICs1NCwxNCBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RK
U011dGF0aW9uTwogICAgIH0KIAogICAgIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yKiBq
c0NvbnN0cnVjdG9yID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yKj4oZXhl
Yy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IEpT
TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2Jq
ZWN0KCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBq
c0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNh
bGxiYWNrLnJlbGVhc2UoKSkpKSk7CisKKyAgICBSZWZQdHI8SlNNdXRhdGlvbkNhbGxiYWNrPiBj
YWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rv
ci0+Z2xvYmFsT2JqZWN0KCkpOworICAgIFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZl
ciA9IE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjaywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisKKyAgICBKU09iamVjdCog
d3JhcHBlciA9IGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0
KCksIG9ic2VydmVyLnJlbGVhc2UoKSkpOworICAgIGNhbGxiYWNrLT5zZXRPd25lcih3cmFwcGVy
KTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUod3JhcHBlcik7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
Q2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDYWxsYmFjay5jcHAK
aW5kZXggNTRmNTcyYTU1ZjA5MjY1OWI2OWYxMmQ0OGViMmY0MjlmYWJiZjAxMS4uMmUyNTA2MTE0
MTNkZjdjMzZhNWIwZDY2OWIwNTEyMTViZjI2YTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhDYWxsYmFjay5jcHAKQEAgLTM2LDE5ICszNiwxOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
Y2FsbGJhY2ssIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBj
YWxsYmFja1JldHVyblZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQorYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNh
bGxiYWNrLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2Fs
bGJhY2tSZXR1cm5WYWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKIHsKICAgICByZXR1cm4gaW52b2tlQ2FsbGJhY2soY2FsbGJhY2ssIHY4OjpDb250
ZXh0OjpHZXRDdXJyZW50KCktPkdsb2JhbCgpLCBhcmdjLCBhcmd2LCBjYWxsYmFja1JldHVyblZh
bHVlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIH0KIAotYm9vbCBpbnZva2VDYWxsYmFjayh2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB0aGlzT2JqZWN0LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9v
bCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBjYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB0aGlzT2JqZWN0LCBpbnQgYXJnYywg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKICAgICB2
ODo6VHJ5Q2F0Y2ggZXhjZXB0aW9uQ2F0Y2hlcjsKICAgICBleGNlcHRpb25DYXRjaGVyLlNldFZl
cmJvc2UodHJ1ZSk7CiAKICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjYWxsYmFja0Z1bmN0
aW9uOwogICAgIGlmIChjYWxsYmFjay0+SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGNhbGxiYWNr
RnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6TmV3KHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvbj46OkNhc3QoY2FsbGJhY2spKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbiA9
IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpOZXcodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+OjpD
YXN0KGNhbGxiYWNrKSk7CiAgICAgfSBlbHNlIGlmIChjYWxsYmFjay0+SXNPYmplY3QoKSkgewog
ICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBoYW5kbGVFdmVudEZ1bmN0aW9uID0gY2FsbGJh
Y2stPkdldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woImhhbmRsZUV2ZW50IikpOwogICAgICAgICBp
ZiAoaGFuZGxlRXZlbnRGdW5jdGlvbi0+SXNGdW5jdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhDYWxsYmFjay5oCmluZGV4IGZlZTE4YjEzMDM4MDIzZTE0Y2VhMTgwZGMwNWIzNTUw
OWFiNzBhYjAuLjVmYjU3MTA0Yzc5YTc3Y2EyOTAyOTZiMGFlZjIwNjI3YzZlYTI0ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q2FsbGJhY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENhbGxiYWNrLmgKQEAgLTM5LDggKzM5LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1ib29s
IGludm9rZUNhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQg
YXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5W
YWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB0
aGlzT2JqZWN0LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYg
Y2FsbGJhY2tSZXR1cm5WYWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworYm9vbCBpbnZv
a2VDYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQgYXJnYywgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopOworYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGNhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHRoaXNPYmplY3QsIGlu
dCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVy
blZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKIGVudW0gQ2FsbGJhY2tBbGxvd2Vk
VmFsdWVGbGFnIHsKICAgICBDYWxsYmFja0FsbG93VW5kZWZpbmVkID0gMSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RGVwZW5kZW50UmV0YWluZWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RGVwZW5kZW50UmV0YWluZWQuaAppbmRleCBkNzg3NjEy
NTJhMzkwYjdiZWYxNWVhYWQ2M2QwNzg4MWU5OGM5Nzg3Li42Mjc3MDBiYWNhNjg3MTYxYmM1M2Vi
ZTY2Nzc5NzM2MGM3MjIwZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERlcGVuZGVudFJldGFpbmVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhEZXBlbmRlbnRSZXRhaW5lZC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvZHRv
YS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00NCw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3Byb3BlcnR5
TmFtZShjcmVhdGVQcm9wZXJ0eU5hbWUoKSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV92YWx1
ZS5pc0VtcHR5KCkpOwotICAgICAgICBtX3ZhbHVlLmdldCgpLk1ha2VXZWFrKHRoaXMsICZWOERl
cGVuZGVudFJldGFpbmVkOjp2YWx1ZVdlYWtDYWxsYmFjayk7CisgICAgICAgIG1fdmFsdWUuZ2V0
KCkuTWFrZVdlYWsodGhpcywgJlY4RGVwZW5kZW50UmV0YWluZWQ6OndlYWtDYWxsYmFjayk7CiAg
ICAgICAgIGlmICghb3duZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0YWluKG93bmVyKTsK
ICAgICB9CkBAIC02OSw4ICs3MCw4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fb3duZXIu
aXNFbXB0eSgpICYmICFvd25lci5Jc0VtcHR5KCkpOwogICAgICAgICBBU1NFUlQoIW1fdmFsdWUu
aXNFbXB0eSgpKTsKICAgICAgICAgb3duZXItPlNldEhpZGRlblZhbHVlKG1fcHJvcGVydHlOYW1l
LmdldCgpLCBnZXQoKSk7Ci0gICAgICAgIG1fb3duZXIgPSBvd25lcjsKLSAgICAgICAgbV9vd25l
ci5nZXQoKS5NYWtlV2Vhayh0aGlzLCAmVjhEZXBlbmRlbnRSZXRhaW5lZDo6b3duZXJXZWFrQ2Fs
bGJhY2spOworICAgICAgICBtX293bmVyLnNldChvd25lcik7CisgICAgICAgIG1fb3duZXIuZ2V0
KCkuTWFrZVdlYWsodGhpcywgJlY4RGVwZW5kZW50UmV0YWluZWQ6OndlYWtDYWxsYmFjayk7CiAg
ICAgfQogCiBwcml2YXRlOgpAQCAtODIsMTkgKzgzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBWOEhpZGRlblByb3BlcnR5TmFtZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IGNoYXIqPihuYW1lLmNoYXJhY3RlcnM4KCkpLCBuYW1lLmxlbmd0aCgpLCBO
ZXdTdHJpbmcpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIG93bmVyV2Vha0NhbGxiYWNrKHY4
OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gb2JqZWN0LCB2b2lkKiBwYXJhbWV0ZXIpCisgICAgc3Rh
dGljIHZvaWQgd2Vha0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gb2JqZWN0LCB2
b2lkKiBwYXJhbWV0ZXIpCiAgICAgewogICAgICAgICBWOERlcGVuZGVudFJldGFpbmVkKiB2YWx1
ZSA9IHN0YXRpY19jYXN0PFY4RGVwZW5kZW50UmV0YWluZWQqPihwYXJhbWV0ZXIpOwogICAgICAg
ICB2YWx1ZS0+cmVsZWFzZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHZhbHVlV2Vha0Nh
bGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gb2JqZWN0LCB2b2lkKiBwYXJhbWV0ZXIp
Ci0gICAgewotICAgICAgICBWOERlcGVuZGVudFJldGFpbmVkKiB2YWx1ZSA9IHN0YXRpY19jYXN0
PFY4RGVwZW5kZW50UmV0YWluZWQqPihwYXJhbWV0ZXIpOwotICAgICAgICAvLyBUaGUgb3duZXIg
Y2FsbGJhY2sgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgZmlyc3QsIHNpbmNlIGl0IHJldGFpbnMg
dGhlIHZhbHVlLgotICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCB2YWx1ZS0+aXNFbXB0eSgp
KTsKLSAgICB9Ci0KICAgICB2b2lkIHJlbGVhc2UoKQogICAgIHsKICAgICAgICAgaWYgKCFtX293
bmVyLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
TXV0YXRpb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0
aW9uQ2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzNTY5MzllNTI4MTcwN2M3ZmE1MjNjNzMyMzkx
MDU5ZWNiN2I5OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOE11dGF0aW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNp
bmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKKworI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOENhbGxiYWNr
LmgiCisjaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiVjhNdXRhdGlv
blJlY29yZC5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Y4TXV0YXRpb25DYWxsYmFjazo6VjhNdXRh
dGlvbkNhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JzZXJ2ZXIsIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisg
ICAgOiBBY3RpdmVET01DYWxsYmFjayhjb250ZXh0KQorICAgICwgbV9jYWxsYmFjayhvYnNlcnZl
ciwgY2FsbGJhY2spCisgICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCit7Cit9
CisKK2Jvb2wgVjhNdXRhdGlvbkNhbGxiYWNrOjpjYWxsKGNvbnN0IFZlY3RvcjxSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+ID4mIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIpCit7
CisgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKworICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
bV93b3JsZENvbnRleHQpOworICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpOwor
CisgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gbXV0YXRpb25zQXJyYXkgPSB2ODo6QXJyYXk6Ok5l
dyhtdXRhdGlvbnMuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11dGF0aW9u
cy5zaXplKCk7ICsraSkKKyAgICAgICAgbXV0YXRpb25zQXJyYXktPlNldCh2OEludGVnZXIoaSks
IHRvVjgobXV0YXRpb25zLmF0KGkpLmdldCgpKSk7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gb2JzZXJ2ZXJIYW5kbGUgPSB0b1Y4KG9ic2VydmVyKTsKKyAgICBpZiAob2JzZXJ2ZXJIYW5k
bGUuSXNFbXB0eSgpKSB7CisgICAgICAgIGlmICghaXNTY3JpcHRDb250cm9sbGVyVGVybWluYXRp
bmcoKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGlmICghb2JzZXJ2ZXJIYW5kbGUtPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsKKyAgICAgICAgbXV0
YXRpb25zQXJyYXksCisgICAgICAgIG9ic2VydmVySGFuZGxlCisgICAgfTsKKworICAgIEFTU0VS
VCghbV9jYWxsYmFjay5pc0VtcHR5KCkpOworCisgICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVl
ID0gZmFsc2U7CisgICAgcmV0dXJuICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLmdldCgpLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KG9ic2VydmVySGFuZGxlKSwgMiwgYXJndiwgY2Fs
bGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjE5ZjM1NGZjZGFmYzIxMTJmYjQxY2I4YzM4ZWQxNmQ3MDRmNmJmOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFj
ay5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VS
VkVSUykKKworI2lmbmRlZiBWOE11dGF0aW9uQ2FsbGJhY2tfaAorI2RlZmluZSBWOE11dGF0aW9u
Q2FsbGJhY2tfaAorCisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJN
dXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhEZXBlbmRlbnRSZXRhaW5lZC5oIgorI2lu
Y2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgorI2luY2x1ZGUgPHY4Lmg+CisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OworCitjbGFzcyBWOE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgTXV0YXRp
b25DYWxsYmFjaywgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxWOE11dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IG9ic2VydmVyLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBWOE11dGF0aW9uQ2FsbGJhY2sob2JzZXJ2ZXIsIGNhbGxiYWNrLCBjb250ZXh0KSk7Cisg
ICAgfQorICAgIHZpcnR1YWwgYm9vbCBjYWxsKGNvbnN0IFZlY3RvcjxSZWZQdHI8TXV0YXRpb25S
ZWNvcmQ+ID4mLCBNdXRhdGlvbk9ic2VydmVyKikgT1ZFUlJJREU7CisKKyBwcml2YXRlOgorICAg
IFY4TXV0YXRpb25DYWxsYmFjayh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICBWOERlcGVuZGVudFJl
dGFpbmVkIG1fY2FsbGJhY2s7CisgICAgV29ybGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0
OworfTsKKworfQorI2VuZGlmIC8vIFY4TXV0YXRpb25DYWxsYmFja19oCisjZW5kaWYgLy8gRU5B
QkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlM2U2ODAyMjRkODI5OTJlYWNlODAzY2Q4NjRkZGUy
YTYxNmI5ODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgIlY4TXV0
YXRpb25DYWxsYmFjay5oIgotCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgot
I2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4Q2FsbGJhY2suaCIKLSNpbmNsdWRl
ICJWOE11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJWOE11dGF0aW9uUmVjb3JkLmgiCi0j
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotYm9vbCBWOE11dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KE11
dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIp
Ci17Ci0gICAgQVNTRVJUKG11dGF0aW9ucyk7Ci0gICAgaWYgKCFtdXRhdGlvbnMpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLQotICAgIHY4
OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV93b3JsZENvbnRleHQpOwotICAgIGlmICh2OENvbnRleHQuSXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29w
ZSh2OENvbnRleHQpOwotCi0gICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gbXV0YXRpb25zQXJyYXkg
PSB2ODo6QXJyYXk6Ok5ldyhtdXRhdGlvbnMtPnNpemUoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtdXRhdGlvbnMtPnNpemUoKTsgKytpKQotICAgICAgICBtdXRhdGlvbnNBcnJheS0+
U2V0KHY4SW50ZWdlcihpKSwgdG9WOChtdXRhdGlvbnMtPmF0KGkpLmdldCgpKSk7Ci0KLSAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JzZXJ2ZXJIYW5kbGUgPSB0b1Y4KG9ic2VydmVyKTsKLSAg
ICBpZiAob2JzZXJ2ZXJIYW5kbGUuSXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICghaXNTY3JpcHRD
b250cm9sbGVyVGVybWluYXRpbmcoKSkKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmICghb2JzZXJ2ZXJIYW5kbGUtPklzT2JqZWN0KCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3Zb
XSA9IHsKLSAgICAgICAgbXV0YXRpb25zQXJyYXksCi0gICAgICAgIG9ic2VydmVySGFuZGxlCi0g
ICAgfTsKLQotICAgIGJvb2wgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAgIHJldHVy
biAhaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChvYnNlcnZlckhhbmRsZSksIDIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUsIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
CmluZGV4IDY4ZjRjN2FhNWMyOWEzNGY4NjhmZDM5ZDU3MDJhYmUwZGQ4NGI1YzEuLjU2NGEyYjAw
MThjZDk5YmJmZTI0YzczYzdhOGMxOGIxZGQ4OTllODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwCkBAIC02MCwxNCArNjAsMTQgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TXV0YXRp
b25PYnNlcnZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBp
ZiAoIWFyZy0+SXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihUWVBF
X01JU01BVENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwogCisgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCi0gICAgUmVmUHRy
PE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUo
YXJnLCBjb250ZXh0KTsKLSAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBN
dXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8
TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSh3
cmFwcGVyLCBhcmcuQXM8djg6Ok9iamVjdD4oKSwgY29udGV4dCk7CisgICAgUmVmUHRyPE11dGF0
aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNr
LnJlbGVhc2UoKSwgY29udGV4dCk7CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXIgPSBhcmdzLkhvbGRlcigpOwogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFw
cGVyLCAmaW5mbywgb2JzZXJ2ZXIuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFw
cGVyRm9yRE9NT2JqZWN0KG9ic2VydmVyLnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAgVjhET01X
cmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JBY3RpdmVET01PYmplY3Qob2JzZXJ2ZXIucmVsZWFzZSgp
LCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbkNhbGxiYWNrLmgKaW5kZXggMTE5MTk3YWJlMzRiMWRhOTA0ZDQyMmJiZjhlMGYxZjc3ZTc3
NmRmMi4uNzY0ZmFiOTY3MmE1YjI0YWUzOWE4ZGNlYjY3MmIxZWFjMWE5NzUyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCkBAIC00MiwxMyArNDIsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBNdXRhdGlvbk9ic2VydmVy
OwogCi10eXBlZGVmIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gTXV0YXRpb25SZWNv
cmRBcnJheTsKLQogY2xhc3MgTXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE11
dGF0aW9uQ2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NdXRhdGlvbkNhbGxiYWNr
KCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJh
eSosIE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNhbGwoY29uc3Qg
VmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4gPiYsIE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFj
ay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhZWNkOWJlOWU0MWRlNGYzMmU0NmY5ZDA1YjBlYmYyY2U0
ODUwZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCisrKyAvZGV2L251bGwKQEAgLTEs
MzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLW1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRp
b25hbD1NVVRBVElPTl9PQlNFUlZFUlMsCi0gICAgICAgIENhbGxiYWNrCi0gICAgXSBNdXRhdGlv
bkNhbGxiYWNrIHsKLSAgICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChpbiBNdXRh
dGlvblJlY29yZEFycmF5IG11dGF0aW9ucywgaW4gTXV0YXRpb25PYnNlcnZlciBvYnNlcnZlcik7
Ci0gICAgfTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAppbmRleCBh
NDBkNTA3ZmU3MDAzYTAyNGNhZTY0YzhjZWJmOGY4YjM1ZTFlMzVhLi45YWNkMWU1MGVkZjIwOTU4
ZmI1YTNjN2VjOWE4MDdmYWFhNTczMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCkBAIC01NywxNCArNTcsMTcgQEAgc3RydWN0IE11dGF0aW9uT2JzZXJ2ZXI6Ok9i
c2VydmVyTGVzc1RoYW4gewogICAgIH0KIH07CiAKLVBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZl
cj4gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4g
Y2FsbGJhY2spCitQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IE11dGF0aW9uT2JzZXJ2ZXI6
OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKSk7CisgICAg
UmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gYWRvcHRSZWYobmV3IE11dGF0aW9u
T2JzZXJ2ZXIoY2FsbGJhY2ssIGNvbnRleHQpKTsKKyAgICBvYnNlcnZlci0+c3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgcmV0dXJuIG9ic2VydmVyLnJlbGVhc2UoKTsKIH0KIAotTXV0YXRpb25PYnNl
cnZlcjo6TXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxi
YWNrKQotICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKK011dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0
aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQorICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKICAgICAsIG1fcHJpb3JpdHkoc19v
YnNlcnZlclByaW9yaXR5KyspCiB7CiB9CkBAIC0xNDEsMTIgKzE0NCwxNCBAQCB2b2lkIE11dGF0
aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uU3RhcnRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKiByZWdpc3RyYQogewogICAgIEFTU0VSVCghbV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJl
Z2lzdHJhdGlvbikpOwogICAgIG1fcmVnaXN0cmF0aW9ucy5hZGQocmVnaXN0cmF0aW9uKTsKKyAg
ICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiB9CiAKIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6
b2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRp
b24pCiB7CiAgICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhyZWdpc3RyYXRpb24p
KTsKICAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3ZlKHJlZ2lzdHJhdGlvbik7CisgICAgdW5zZXRQ
ZW5kaW5nQWN0aXZpdHkodGhpcyk7CiB9CiAKIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8TXV0YXRp
b25PYnNlcnZlcj4gPiBNdXRhdGlvbk9ic2VydmVyU2V0OwpAQCAtMTg1LDEwICsxOTAsNyBAQCB2
b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIoKQogICAgIGlmIChtX3JlY29yZHMuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3Jk
PiA+IHJlY29yZHM7Ci0gICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7Ci0KLSAgICBtX2NhbGxi
YWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhpcyk7CisgICAgbV9jYWxsYmFjay0+Y2FsbCh0
YWtlUmVjb3JkcygpLCB0aGlzKTsKIH0KIAogdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVy
QWxsTXV0YXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCmluZGV4IGZh
ZGIzNzhkMWVmZGViZDFjYmNlMzI0N2VkOWY5ZmIxMDM3NzM0MDEuLjA1YWI3ZWYzYzkxNWY5OGFk
MWMwYmIzNDgyM2MzY2FjMzliODUzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
IAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpA
QCAtNDgsMTMgKzQ5LDE0IEBAIGNsYXNzIE11dGF0aW9uQ2FsbGJhY2s7CiBjbGFzcyBNdXRhdGlv
bk9ic2VydmVyUmVnaXN0cmF0aW9uOwogY2xhc3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2Rl
OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIAogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zOwog
dHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zOwogCi1j
bGFzcyBNdXRhdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZl
cj4geworY2xhc3MgTXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9u
T2JzZXJ2ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBlbnVtIE11
dGF0aW9uVHlwZSB7CiAgICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKQEAgLTc0LDEwICs3Niwx
MCBAQCBwdWJsaWM6CiAgICAgICAgIENoYXJhY3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwKICAg
ICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gY3JlYXRlKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0
aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7CiAgICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9ucygp
OwogCi0gICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKKyAgICB2aXJ0dWFsIH5NdXRhdGlvbk9ic2Vy
dmVyKCk7CiAKICAgICB2b2lkIG9ic2VydmUoTm9kZSosIGNvbnN0IERpY3Rpb25hcnkmLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4gPiB0YWtlUmVj
b3JkcygpOwpAQCAtOTAsNyArOTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0cnVjdCBP
YnNlcnZlckxlc3NUaGFuOwogCi0gICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihQYXNzUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8
TXV0YXRpb25DYWxsYmFjaz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICB2b2lkIGRl
bGl2ZXIoKTsKIAogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwKaW5kZXgg
MGFlOTkyZTZkYTc1ZTUxNTQzZjc3OThiNzE2MDY1OThkMTc5YWMyMS4uMjY1MjdkNDM4ZGZlMmY3
OWY3MTZjOTQwNWY5ZTc0MDU1ODYzNTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmlkbApAQCAtMzAsNiArMzAsNyBAQAogCiBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBDb25kaXRpb25hbD1NVVRB
VElPTl9PQlNFUlZFUlMsCiAgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25z
dHJ1Y3RvclBhcmFtZXRlcnM9MQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185055</attachid>
            <date>2013-01-28 13:59:53 -0800</date>
            <delta_ts>2013-01-28 14:28:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-93661-20130128135640.patch</filename>
            <type>text/plain</type>
            <size>39788</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E4MjYwN2YyYjhiYjM0
MmNjZTFkMzIwZTE2YmFkYjYxZDdmNmJjOC4uYTg1ZTkxMGE3MTNlODA0MGVjZmM0NDMyYjc0MzAz
ZjgyZmY4YWMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTI4ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtKU0NdIE11dGF0aW9uT2Jz
ZXJ2ZXJzIHNob3VsZCBub3QgY3JlYXRlIGNpcmN1bGFyLCBsZWFreSByZWZlcmVuY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzY2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVzZUpT
Qy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6SlNNdXRhdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6fkpTTXV0YXRpb25DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OnNldENhbGxiYWNrQW5k
T3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OldlYWtPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSlNNdXRh
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYWtPd25lcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRh
dGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlv
bk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTTXV0YXRpb25PYnNlcnZlcik6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25PYnNlcnZlcjo6dmlz
aXRDaGlsZHJlbik6CisgICAgICAgICogZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsOiBSZW1vdmVk
LgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbDoKKwogMjAxMy0wMS0yOCAgSWFu
IFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQcm9tb3RlIGNvbXBv
c2l0ZWQtc2Nyb2xsaW5nIGxheWVycyB0byBzdGFja2luZyBjb250YWluZXJzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA1MmE0YjJiOTcwYTk5MDEyYTU2YmQ3MGM3M2JiOGM1OTk2ZDY1MzVjLi4x
MGE2NjQ5NmFkNGI2ZWFjNjM1NmU1YzE1NGFkM2IyMzJmMTQwZTcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMzc2LDcgKzM3Niw2IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRvbS9N
ZXNzYWdlRXZlbnQuaWRsCiAgICAgZG9tL01lc3NhZ2VQb3J0LmlkbAogICAgIGRvbS9Nb3VzZUV2
ZW50LmlkbAotICAgIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAogICAgIGRvbS9NdXRhdGlvbkV2
ZW50LmlkbAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbAogICAgIGRvbS9NdXRhdGlvblJl
Y29yZC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRiMjU1ZTFkODFiNTc3
ZGE2NjRjZDc1ZjAxMTg2YzVhNTdkYjc1ZWUuLjVkNGYwYjUwMjIyMGE4ZTc4MzI4OTI0MDE3MGNl
ZGIwZjNjMDIwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjQyLDcgKzI0
Miw2IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlUG9ydC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxi
YWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9N
dXRhdGlvblJlY29yZC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDRiMjI4
MmU1OWY5YjE4MGMxMjY4YjU4MjQ5YjViYmVkYmFkYTNkNDQuLjFjYmNjMzc2NjNlM2QwOTVjODQx
Mjc5YjBiZTU5YTE2NGYwNzhhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTI1
NCw3ICsyNTQsNiBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2RvbS9NZXNzYWdlQ2hh
bm5lbC5pZGwgXAogICAgICQkUFdEL2RvbS9NZXNzYWdlRXZlbnQuaWRsIFwKICAgICAkJFBXRC9k
b20vTWVzc2FnZVBvcnQuaWRsIFwKLSAgICAkJFBXRC9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwg
XAogICAgICQkUFdEL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAgICAgJCRQV0QvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkJFBXRC9kb20vTXV0YXRpb25SZWNvcmQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDgxYjI1MzBjN2FjZDI0ZGY3ZGFhOTAwMTQ4
NWUzZGRiYjc3YTI2YTAuLmVhMGY2NmUxYzlhNTMzODcxMWU5OGJkYmE3NDg4MmJkMWNiZWJiMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTQzLDggKzU0Myw2IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0
YUl0ZW1WYWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmggXAotCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU011dGF0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5jcHAgXApA
QCAtMTM5NSw3ICsxMzkzLDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9k
b20vTWVzc2FnZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTWVzc2FnZVBvcnQuaWRsIFwK
IAkkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCi0JJChXZWJDb3JlKS9kb20vTXV0YXRp
b25DYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uRXZlbnQuaWRsIFwKIAkk
KFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0
YXRpb25SZWNvcmQuaWRsIFwKQEAgLTIzOTMsNyArMjM5MCw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IDRiOWNkZmFjYmJhOTMyZmZlYmNmNDM0NTJmMmViZWVjMGQ4ZmU0MzMuLmQ1MDk4NzI4
YmU1MDRlMWMzYTYzOGZkNWEzZTA1ODBmNWVjYTU2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTU0LDcg
KzE1NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCiAgICAg
IGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCi0gICAgIGJpbmRp
bmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAorICAgICBiaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXApAQCAtMTM2Nyw2ICsxMzY3
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgg
XAogICAgIGJpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuaCBcCiAgICAgYmluZGluZ3Mv
anMvSlNMb2NhdGlvbkN1c3RvbS5oIFwKKyAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suaCBcCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oIFwKICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKaW5kZXggYTVlNjlmNTUyZjAyZWY0MmZmMTk3
OGY5YjI3MGRlZGU4OWViOTIzOC4uMDlmMjJjMmQ2NzZiYmEyNjg1ZjMwY2UxMjY4MDkyMDcyOWNk
ZjRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQpAQCAtMTE0LDcgKzExNCw3IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDVmZTJkODQ2NTc0YTdhMmMwOTU1YjgyMDgy
NWZkNmExOTE3ZTg2MjMuLjQxMjIzYjI3NzdiYTU1OTllYmEzYjBkNWU0NGUyN2Y1YWM1NjgwMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTY1NzYsOCArNjU3Niw2IEBACiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01ldGFkYXRhQ2FsbGJhY2suaCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01v
dXNlRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW91c2VFdmVudC5oJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5jcHAnLAotICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxi
YWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MTI5NDRhNTgxMWM0MjcyZmVkMjIyMjdjYjIxNWM1YTk5ODBhZGI1MC4uZDE4ZjFmMjQ0MzhmNTk1
MDQzZmZlZmRjYTdlNDEwY2UwNDAzM2I3YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNzM0LDYyICsxMTczNCw2IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxiYWNr
LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxp
dGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU011dGF0aW9uQ2FsbGJhY2suaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uRXZlbnQuY3BwIgogCQkJCT4KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTcwNDQ1LDcgKzcwMzg5LDcgQEAKIAkJCQkJPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNzA0OTcsNiArNzA0NDEsMTAgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2suaCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agppbmRleCA2NmEzMDIyYjM1NWU3OWRiNWFjOTc3ODhlYmRhMGZmYjc2ZGQ4ZDg1Li5iYzkwZTUw
NGQ3N2I1Y2RiNzNjODM3MmVjNjkxMGVlODMwODAzNDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTg3NCwxMCArODc0LDYgQEAKICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENv
bXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25DYWxsYmFjay5jcHAi
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkV2ZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
NTMwMSw3ICs1Mjk3LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxi
aW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KQEAgLTYwMjYsNyArNjAyMiw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWV0
YWRhdGFDYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01pY3JvRGF0
YUl0ZW1WYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01vdXNlRXZlbnQu
aCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxiYWNrLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25FdmVudC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uT2JzZXJ2ZXIuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvblJlY29yZC5oIiAvPgpAQCAtODAxMCw2ICs4MDA1LDcg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTG9jYXRpb25DdXN0
b20uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcSlNNZXNzYWdlUG9ydEN1c3RvbS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmgiIC8+CkBAIC04Njc1LDQgKzg2NzEsNCBAQAogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJn
ZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9
IkV4dGVuc2lvblRhcmdldHMiPgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAwMjVjNDgz
MmQ3YzY1MzVlZWNiZWZjN2E0ZjlkNThjMzExODMzYzkxLi5iNWFlNjFjMjhkZmE3OThiZWY2ODlj
MDAyMjE2OGI2YzgzOWI3OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC05NDIsOSArOTQyLDYgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTTXV0YXRpb25DYWxsYmFjay5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJp
dmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU011dGF0aW9uRXZlbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTYwMjcsNyArNjAyNCw3IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1
c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5n
c1xqc1xKU011dGF0aW9uQ2FsbGJhY2suY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiPgpAQCAtNzQ1MSw5ICs3NDQ4
LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNb3VzZUV2ZW50LmgiPgogICAgICAg
PEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uQ2FsbGJhY2suaCI+Ci0gICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTTXV0YXRpb25FdmVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNv
dXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEyNzc5LDYgKzEyNzczLDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTWVzc2FnZVBvcnRDdXN0
b20uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2Fs
bGJhY2suaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0
b20uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC0xNTE4NSw0ICsxNTE4Miw0IEBACiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmls
dGVyPgogICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzRlMDBjNWQ5Yzlk
YTg0OWY2NTVkMGVjYjlkZDAxY2NjYTZmYzQ5Yi4uYjQwZjMyZDNmZTc2YzE3YzRmNDM3YjExMzhj
YzUwYTk3YWVmYWM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTk1MiwxMyArNTk1MiwxMiBAQAogCQlDNkYwOTAwQTE0MzI3
QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0
aW9uQ2FsbGJhY2suaCAqLzsgfTsKIAkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwICov
OyB9OwogCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDYxNDMy
N0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDNkYwOTAyODE0MzI3RDRGMDA2ODU4NDkgLyog
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJh
Y2suY3BwICovOyB9OwotCQlDNkYwOTAyOTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJ
CUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjQxNDMyN0Q0
RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CiAJCUM2RjA5MDJEMTQz
MjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCAqLzsgfTsKLQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0IC8q
IEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsKKwkJ
QzZGNDIwQTIxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MjBBMDE2QjcxNjRF
MDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsKKwkJQzZGNDIwQTMxNkI3
MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDIwQTExNkI3MTY0RTAwNTJBOUYyIC8qIEpT
TXV0YXRpb25DYWxsYmFjay5oICovOyB9OwogCQlDQTNCRjY3QzEwRDk5QkFFMDBFNkNFNTMgLyog
U2Nyb2xsQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAq
LzsgfTsKIAkJQ0EzQkY2N0UxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3RDEwRDk5
QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NT
QXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5jcHAgKi87IH07CkBAIC0xMzQ5MiwxNyArMTM0OTEsMTUgQEAKIAkJQzZGMDhGQzcxNDMxMDAw
RDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25SZWNvcmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11
dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRp
b25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAwMjE0MzI3
QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTXV0YXRpb25DYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2
RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRp
b25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDA3MTQzMjdCNjEw
MDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBN
dXRhdGlvbk9ic2VydmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkw
MjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRp
b25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAyNDE0MzI3
RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbk9ic2Vy
dmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MTdFMTQzQTJCQjkwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7IHBhdGggPSBNb2R1bGVz
L2ZpbGVzeXN0ZW0vRW50cnlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzZGNDIwQTAxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkY0MjBBMTE2QjcxNjRFMDA1MkE5RjIgLyog
SlNNdXRhdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
TXV0YXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3
QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENT
U0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xOTQ3MSw4ICsxOTQ2OCw2IEBACiAJCQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uaCAqLywKIAkJCQlGRTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9w
b3NpdGlvbi5jcHAgKi8sCiAJCQkJRkU4MERBNjIwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9z
aXRpb24uaCAqLywKLQkJCQlDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcCAqLywKLQkJCQlDNkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlv
bkNhbGxiYWNrLmggKi8sCiAJCQkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25PYnNlcnZlci5jcHAgKi8sCiAJCQkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25PYnNlcnZlci5oICovLAogCQkJCUM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011
dGF0aW9uUmVjb3JkLmNwcCAqLywKQEAgLTIwNzk5LDYgKzIwNzk0LDggQEAKIAkJCQkzMzE0QUNF
QTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmggKi8sCiAJCQkJOEY5MzREODQx
MTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgKi8sCiAJCQkJOEY5
MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oICovLAorCQkJ
CUM2RjQyMEEwMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovLAor
CQkJCUM2RjQyMEExMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywK
IAkJCQk5M0I3MEQ0RjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcCAqLywKIAkJCQk5M0I3MEQ1MDA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmggKi8sCiAJCQkJMTRDRDhEODExMDZCNTI5MDAwQTQ2RDIzIC8qIEpTU2hhcmVk
V29ya2VyQ3VzdG9tLmNwcCAqLywKQEAgLTIwOTg1LDcgKzIwOTgyLDYgQEAKIAkJCQlFMUFERUQ0
NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgKi8sCiAJCQkJNDFG
NTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLywKIAkJCQkx
MDU5NDU3MjE1QjQyOTUzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3Bw
ICovLAotCQkJCUM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwICovLAogCQkJCUM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVGMEMxN0FBNjcwMDVDOTBBMiAvKiBK
U05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEy
IC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8sCkBAIC0yMjQxOCw3ICsyMjQxNCw2IEBACiAJCQkJODUw
MzFCMzEwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlUmVsYXRlZEV2ZW50LmNwcCAqLywKIAkJCQk4
NTAzMUIzMjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxhdGVkRXZlbnQuaCAqLywKIAkJCQlD
NkYwOTAwMTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oICovLAotCQkJCUM2
RjA5MDAyMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmlkbCAqLywKIAkJCQk4
NTAzMUIzMzBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgKi8sCiAJCQkJODUw
MzFCMzQwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuaCAqLywKIAkJCQk5M0VFQzFG
MzA5QzI4Nzc3MDBDNTE1RDEgLyogTXV0YXRpb25FdmVudC5pZGwgKi8sCkBAIC0yNDc5MSw3ICsy
NDc4Niw3IEBACiAJCQkJODk4Nzg1QjkxMjJDQTJBNzAwM0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTA1OTQ1N0ExNUI0MkE0MzAwNEQzN0ZEIC8qIEpT
TWljcm9EYXRhSXRlbVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODY2MjlEMTA5REEyQjQ4
MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlDNkYwOTAyOTE0
MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDNkY0MjBBMzE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NURGMzFGQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4
NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODEzMyw4ICsyODEy
OCw3IEBACiAJCQkJMTA1OTQ1NzcxNUI0MkEwRDAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTEwNTk0NTczMTVCNDI5NTMwMDREMzdGRCAvKiBK
U01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODY2MjlE
MjA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUM2RjA5MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxs
YmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkY0MjBBMjE2QjcxNjRFMDA1MkE5
RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUZC
MDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOGY3MWRhNWFlM2VmMmE0ZDBm
MDg4YmM2Y2Q0YWUxM2U4OTYwMWFmYS4uOWY3ODY0OGNjYTFkZjAwNzYwMGVlYWU2ZDI4ZmY1Y2U2
YmM0NWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTTXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNp
bmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTmFtZWRO
b2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVDdXN0b20uY3BwIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmIxNTRlNmQ4MzlmY2FhNjc1YzEyODcyOWFhMjI2OTAwZTY2NTU4OAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAK
QEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2suaCIKKworI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNl
cnZlci5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKwordXNpbmcg
bmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU011dGF0aW9uQ2FsbGJh
Y2s6OkpTTXV0YXRpb25DYWxsYmFjayhKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
ICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgLCBtX2lzb2xhdGVkV29ybGQoZ2xvYmFsT2JqZWN0LT53b3JsZCgpKQorewor
fQorCitKU011dGF0aW9uQ2FsbGJhY2s6On5KU011dGF0aW9uQ2FsbGJhY2soKQoreworfQorCit2
b2lkIEpTTXV0YXRpb25DYWxsYmFjazo6c2V0Q2FsbGJhY2tBbmRPd25lcihKU09iamVjdCogY2Fs
bGJhY2ssIE11dGF0aW9uT2JzZXJ2ZXIqIG93bmVyKQoreworICAgIG1fY2FsbGJhY2sgPSBQYXNz
V2VhazxKU09iamVjdD4oY2FsbGJhY2ssICZtX3dlYWtPd25lciwgb3duZXIpOworfQorCitib29s
IEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0
YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK3sKKyAgICBpZiAoIWNhbkludm9r
ZUNhbGxiYWNrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgUmVmUHRyPEpTTXV0YXRp
b25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKG1faXNv
bGF0ZWRXb3JsZC0+Z2xvYmFsRGF0YSgpKTsKKworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IHRvSlNET01HbG9iYWxPYmplY3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2lzb2xhdGVk
V29ybGQuZ2V0KCkpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbXV0YXRpb25MaXN0OworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbXV0YXRpb25zLT5zaXplKCk7ICsraSkKKyAgICAgICAgbXV0
YXRpb25MaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgbXV0YXRpb25zLT5hdChp
KS5nZXQoKSkpOworCisgICAgSlNWYWx1ZSBqc09ic2VydmVyID0gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIG9ic2VydmVyKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAg
YXJncy5hcHBlbmQoY29uc3RydWN0QXJyYXkoZXhlYywgMCwgZ2xvYmFsT2JqZWN0LCBtdXRhdGlv
bkxpc3QpKTsKKyAgICBhcmdzLmFwcGVuZChqc09ic2VydmVyKTsKKworICAgIGJvb2wgcmFpc2Vk
RXhjZXB0aW9uID0gZmFsc2U7CisgICAgLy8gRklYTUU6IEV4dHJhY3QgaW52b2tlQ2FsbGJhY2so
KSBtZXRob2QuCisgICAgSlNDYWxsYmFja0RhdGEobV9jYWxsYmFjay5nZXQoKSwgZ2xvYmFsT2Jq
ZWN0KS5pbnZva2VDYWxsYmFjayhqc09ic2VydmVyLCBhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsK
KyAgICByZXR1cm4gIXJhaXNlZEV4Y2VwdGlvbjsKK30KKworYm9vbCBKU011dGF0aW9uQ2FsbGJh
Y2s6OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAg
Ly8gRklYTUU6IFRha2VzIHR3byBHQyBjeWNsZXMgdG8gY29sbGVjdCB0aGUgY2FsbGJhY2sKKyAg
ICByZXR1cm4gdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3QoY29udGV4dCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRh
dGlvbkNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJmN2UyMDk0MGNiOTYyYTQ5MGYxMDVkNTlkNDlj
YWQxNWIxNTI0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25DYWxsYmFjay5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBKU011dGF0aW9uQ2FsbGJhY2tfaAorI2RlZmluZSBKU011dGF0aW9uQ2FsbGJhY2tfaAor
CisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0
YS5oIgorI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTTXV0YXRpb25DYWxsYmFjayA6
IHB1YmxpYyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4gY3JlYXRlKEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEpTTXV0YXRpb25DYWxsYmFjayhnbG9iYWxPYmplY3QpKTsKKyAgICB9CisgICAg
dm9pZCBzZXRDYWxsYmFja0FuZE93bmVyKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBNdXRhdGlv
bk9ic2VydmVyKiBvd25lcik7CisKKyAgICB2aXJ0dWFsIH5KU011dGF0aW9uQ2FsbGJhY2soKTsK
KworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRh
dGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBKU011dGF0aW9uQ2FsbGJhY2soSlNE
T01HbG9iYWxPYmplY3QqKTsKKworICAgIGNsYXNzIFdlYWtPd25lciA6IHB1YmxpYyBKU0M6Oldl
YWtIYW5kbGVPd25lciB7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJikgT1ZFUlJJREU7CisgICAgfTsKKyAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7
CisgICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jYWxsYmFjazsKKyAgICBS
ZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRhNTA1ZjllNzhjNDZiY2MzNzRiYWQxY2ViNjM0OTUzNzJhOTliOGUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJKU011dGF0aW9u
Q2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgotI2luY2x1ZGUgIkpT
TXV0YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1ib29s
IEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0
YXRpb25zLCBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBpZiAoIWNhbkludm9r
ZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgUmVmUHRyPEpTTXV0YXRp
b25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQotICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9N
V2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotCi0gICAgRXhlY1N0YXRlKiBleGVj
ID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwotCi0gICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgbXV0YXRpb25MaXN0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbXV0
YXRpb25zLT5zaXplKCk7ICsraSkKLSAgICAgICAgbXV0YXRpb25MaXN0LmFwcGVuZCh0b0pTKGV4
ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCksIG11dGF0aW9ucy0+YXQoaSkuZ2V0KCkpKTsKLQot
ICAgIEpTVmFsdWUganNPYnNlcnZlciA9IHRvSlMoZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3Qo
KSwgb2JzZXJ2ZXIpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdz
LmFwcGVuZChjb25zdHJ1Y3RBcnJheShleGVjLCAwLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBt
dXRhdGlvbkxpc3QpKTsKLSAgICBhcmdzLmFwcGVuZChqc09ic2VydmVyKTsKLQotICAgIGJvb2wg
cmFpc2VkRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhqc09i
c2VydmVyLCBhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsKLSAgICByZXR1cm4gIXJhaXNlZEV4Y2Vw
dGlvbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggMDU3
ZjMyZTY1NjUyYWU4MDU3N2YyODI1MjYyMTkxZDQ3NDNkMTEyYy4uYzQ2MmFlOTQwYWMzYTZlOWEy
ODFjYzA5YmU5ZDQwMjAxYTQwZjA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC01Miw4ICs1MiwyMCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RKU011dGF0aW9uTwogICAgIH0KIAogICAgIEpTTXV0YXRpb25PYnNlcnZl
ckNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlckNv
bnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNr
PiBjYWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1
Y3Rvci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmpl
Y3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgTXV0YXRpb25PYnNl
cnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKSk7CisgICAgUmVmUHRyPEpTTXV0YXRp
b25DYWxsYmFjaz4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShqc0NvbnN0
cnVjdG9yLT5nbG9iYWxPYmplY3QoKSk7CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9i
c2VydmVyID0gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFj
ay0+c2V0Q2FsbGJhY2tBbmRPd25lcihvYmplY3QsIG9ic2VydmVyLmdldCgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIG9ic2VydmVyLnJlbGVhc2UoKSkpKTsKK30KKwordm9pZCBKU011dGF0aW9u
T2JzZXJ2ZXI6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICBKU011dGF0aW9uT2JzZXJ2ZXIqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNNdXRh
dGlvbk9ic2VydmVyKj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlz
T2JqZWN0LCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGlu
Z0ZsYWcpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5v
dmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOworICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09i
amVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHRoaXNPYmplY3QtPmlt
cGwoKSk7CiB9CiAKIGJvb2wgSlNNdXRhdGlvbk9ic2VydmVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25DYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmZjYwYjc1OTIyYWFiMjVhMmQxMzVjMzFh
OTFkZWNmZDJmM2FhMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLS8vIEZJWE1FOiBUaGlzIGludGVyZmFjZSBpcyBvbmx5IHVzZWQg
dG8gZ2VuZXJhdGUgY29kZSBmb3IgSlNDLgotLy8gSXQgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSBo
dHRwOi8vd2Via2l0Lm9yZy9iLzkzNjYxIGlzIGZpeGVkLgotWwotICAgIENhbGxiYWNrCi1dIGlu
dGVyZmFjZSBNdXRhdGlvbkNhbGxiYWNrIHsKLSAgICBbQ3VzdG9tXSBib29sZWFuIGhhbmRsZUV2
ZW50KGluIE11dGF0aW9uUmVjb3JkQXJyYXkgbXV0YXRpb25zLCBpbiBNdXRhdGlvbk9ic2VydmVy
IG9ic2VydmVyKTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwKaW5k
ZXggYmJjZDUxODM5ZTBjODBmYmVmMWZkYjMxMmYyOGZkZGU0OTAzMWY3OC4uMGFjMzNlYzkwNjQ0
YTEyMjQ4OGRhZGMwNDY2MDQzOTMzNDU3MzE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bk9ic2VydmVyLmlkbApAQCAtMzEsNiArMzEsNyBAQAogWwogICAgIEN1c3RvbUNvbnN0cnVjdG9y
LAogICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAorICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9u
LAogICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUKIF0gaW50ZXJmYWNlIE11dGF0aW9uT2JzZXJ2ZXIg
ewogICAgIHZvaWQgb2JzZXJ2ZShpbiBOb2RlIHRhcmdldCwgaW4gRGljdGlvbmFyeSBvcHRpb25z
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185063</attachid>
            <date>2013-01-28 14:28:39 -0800</date>
            <delta_ts>2013-01-28 16:24:26 -0800</delta_ts>
            <desc>WIP: PrivateName alternative</desc>
            <filename>bug-93661-20130128142526.patch</filename>
            <type>text/plain</type>
            <size>38181</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E4MjYwN2YyYjhiYjM0
MmNjZTFkMzIwZTE2YmFkYjYxZDdmNmJjOC4uMjRkZGU0MzhlYzNiMzcxZjMxZDE0YjAzYjRkNmY4
ODc4YTY5MDY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAxLTI4ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtKU0NdIE11dGF0aW9uT2Jz
ZXJ2ZXJzIHNob3VsZCBub3QgY3JlYXRlIGNpcmN1bGFyLCBsZWFreSByZWZlcmVuY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzY2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVzZUpT
Qy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6SlNNdXRhdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6fkpTTXV0YXRpb25DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEpTTXV0YXRpb25DYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTTXV0YXRpb25PYnNlcnZl
cik6CisgICAgICAgICogZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsOiBSZW1vdmVkLgorCiAyMDEz
LTAxLTI4ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBy
b21vdGUgY29tcG9zaXRlZC1zY3JvbGxpbmcgbGF5ZXJzIHRvIHN0YWNraW5nIGNvbnRhaW5lcnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUyYTRiMmI5NzBhOTkwMTJhNTZiZDcwYzczYmI4YzU5
OTZkNjUzNWMuLjEwYTY2NDk2YWQ0YjZlYWM2MzU2ZTVjMTU0YWQzYjIzMmYxNDBlNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zNzYsNyArMzc2LDYgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVT
CiAgICAgZG9tL01lc3NhZ2VFdmVudC5pZGwKICAgICBkb20vTWVzc2FnZVBvcnQuaWRsCiAgICAg
ZG9tL01vdXNlRXZlbnQuaWRsCi0gICAgZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCiAgICAgZG9t
L011dGF0aW9uRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCiAgICAgZG9t
L011dGF0aW9uUmVjb3JkLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGIy
NTVlMWQ4MWI1NzdkYTY2NGNkNzVmMDExODZjNWE1N2RiNzVlZS4uNWQ0ZjBiNTAyMjIwYThlNzgz
Mjg5MjQwMTcwY2VkYjBmM2MwMjBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0yNDIsNyArMjQyLDYgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL01l
c3NhZ2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL01lc3NhZ2VQb3J0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL011
dGF0aW9uQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogICAgICQoV2Vi
Q29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkK
aW5kZXggNGIyMjgyZTU5ZjliMTgwYzEyNjhiNTgyNDliNWJiZWRiYWRhM2Q0NC4uMWNiY2MzNzY2
M2UzZDA5NWM4NDEyNzliMGJlNTlhMTY0ZjA3OGE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LnByaQpAQCAtMjU0LDcgKzI1NCw2IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvZG9t
L01lc3NhZ2VDaGFubmVsLmlkbCBcCiAgICAgJCRQV0QvZG9tL01lc3NhZ2VFdmVudC5pZGwgXAog
ICAgICQkUFdEL2RvbS9NZXNzYWdlUG9ydC5pZGwgXAotICAgICQkUFdEL2RvbS9NdXRhdGlvbkNh
bGxiYWNrLmlkbCBcCiAgICAgJCRQV0QvZG9tL011dGF0aW9uRXZlbnQuaWRsIFwKICAgICAkJFBX
RC9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogICAgICQkUFdEL2RvbS9NdXRhdGlvblJlY29y
ZC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggODFiMjUzMGM3YWNkMjRk
ZjdkYWE5MDAxNDg1ZTNkZGJiNzdhMjZhMC4uZWEwZjY2ZTFjOWE1MzM4NzExZTk4YmRiYTc0ODgy
YmQxY2JlYmIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NDMsOCArNTQz
LDYgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWljcm9EYXRhSXRlbVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3Vz
ZUV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCBcCi0J
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTXV0YXRpb25FdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
dXRhdGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2Vy
dmVyLmNwcCBcCkBAIC0xMzk1LDcgKzEzOTMsNiBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkk
KFdlYkNvcmUpL2RvbS9NZXNzYWdlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NZXNzYWdl
UG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLQkkKFdlYkNvcmUp
L2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVu
dC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKIAkkKFdlYkNv
cmUpL2RvbS9NdXRhdGlvblJlY29yZC5pZGwgXApAQCAtMjM5Myw3ICsyMzkwLDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0
Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1
c3RvbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1
ZUN1c3RvbS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxs
YmFja0N1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25D
YWxsYmFjay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxs
YmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1
c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggNGI5Y2RmYWNiYmE5MzJmZmViY2Y0MzQ1MmYyZWJlZWMwZDhmZTQz
My4uZDUwOTg3MjhiZTUwNGUxYzNhNjM4ZmQ1YTNlMDU4MGY1ZWNhNTY1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0xNTQsNyArMTU0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVz
c2FnZVBvcnRDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5oIFwKICAgICAgYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIFwK
LSAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisgICAgIGJp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU011
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVN
YXBDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCkBAIC0x
MzY3LDYgKzEzNjcsNyBAQCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0ltYWdlQ29u
c3RydWN0b3IuaCBcCiAgICAgYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmggXAorICAgIGJpbmRpbmdzL2pzL0pTTXV0
YXRpb25DYWxsYmFjay5oIFwKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaCBcCiAgICAg
YmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggXAogICAgIGJpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Vz
ZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQppbmRleCBhNWU2OWY1NTJm
MDJlZjQyZmYxOTc4ZjliMjcwZGVkZTg5ZWI5MjM4Li4wOWYyMmMyZDY3NmJiYTI2ODVmMzBjZTEy
NjgwOTIwNzI5Y2RmNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xMTQsNyArMTE0LDcgQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNNdXRhdGlv
bkNhbGxiYWNrLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWZlMmQ4NDY1NzRhN2Ey
YzA5NTViODIwODI1ZmQ2YTE5MTdlODYyMy4uNDEyMjNiMjc3N2JhNTU5OWViYTNiMGQ1ZTQ0ZTI3
ZjVhYzU2ODAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjU3Niw4ICs2NTc2LDYgQEAKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWV0YWRhdGFD
YWxsYmFjay5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTW91c2VFdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmgnLAotICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCcs
Ci0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25P
YnNlcnZlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCAxMjk0NGE1ODExYzQyNzJmZWQyMjIyN2NiMjE1YzVhOTk4MGFkYjUwLi5kMThm
MWYyNDQzOGY1OTUwNDNmZmVmZGNhN2U0MTBjZTA0MDMzYjdjIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTE3MzQsNjIgKzExNzM0LDYgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0
aW9uQ2FsbGJhY2suY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25DYWxsYmFjay5oIgotCQkJCT4KLQkJCTwvRmls
ZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25FdmVudC5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNzA0NDUsNyArNzAzODksNyBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2suY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC03MDQ5Nyw2ICs3MDQ0
MSwxMCBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5o
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCmluZGV4IDY2YTMwMjJiMzU1ZTc5ZGI1YWM5Nzc4OGViZGEwZmZiNzZkZDhk
ODUuLmJjOTBlNTA0ZDc3YjVjZGI3M2M4MzcyZWM2OTEwZWU4MzA4MDM0NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtODc0LDEwICs4
NzQsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0
aW9uRXZlbnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC01MzAxLDcgKzUyOTcsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
IDwvQ2xDb21waWxlPgpAQCAtNjAyNiw3ICs2MDIyLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNNZXRhZGF0YUNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTTWljcm9EYXRhSXRlbVZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TW91c2VFdmVudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uQ2Fs
bGJhY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkV2ZW50Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25PYnNlcnZlci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uUmVjb3JkLmgiIC8+CkBAIC04MDEw
LDYgKzgwMDUsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNM
b2NhdGlvbkN1c3RvbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU01lc3NhZ2VQb3J0Q3VzdG9tLmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2suaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuaCIgLz4KQEAgLTg2NzUsNCArODY3MSw0IEBACiAgIDxJbXBvcnQgUHJvamVj
dD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CiAgIDxJbXBvcnRH
cm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2pl
Y3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmlu
ZGV4IDAyNWM0ODMyZDdjNjUzNWVlY2JlZmM3YTRmOWQ1OGMzMTE4MzNjOTEuLmI1YWU2MWMyOGRm
YTc5OGJlZjY4OWMwMDIyMTY4YjZjODM5Yjc5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTk0Miw5ICs5
NDIsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01vdXNlRXZlbnQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCI+Ci0gICAgICA8
RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25FdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNjAyNyw3ICs2MDI0
LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTWljcm9EYXRh
SXRlbVZhbHVlQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5jcHAiPgogICAgICAgPEZpbHRlcj5i
aW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCI+CkBAIC03
NDUxLDkgKzc0NDgsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01vdXNlRXZlbnQu
aCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25DYWxsYmFjay5oIj4KLSAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkV2ZW50LmgiPgogICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTI3NzksNiAr
MTI3NzMsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNZXNz
YWdlUG9ydEN1c3RvbS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpT
TXV0YXRpb25DYWxsYmFjay5oIj4KKyAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTTm9kZUN1c3RvbS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KQEAgLTE1MTg1LDQgKzE1MTgyLDQgQEAKICAgICAgIDxGaWx0ZXI+cmVu
ZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CiAgIDwvSXRlbUdyb3VwPgot
PC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAz
NGUwMGM1ZDljOWRhODQ5ZjY1NWQwZWNiOWRkMDFjY2NhNmZjNDliLi5iNDBmMzJkM2ZlNzZjMTdj
NGY0MzdiMTEzOGNjNTBhOTdhZWZhYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTUyLDEzICs1OTUyLDEyIEBACiAJCUM2
RjA5MDBBMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwMTE0MzI3QjYxMDA2ODU4
NDkgLyogTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwogCQlDNkYwOTAwRTE0MzI3QjYxMDA2ODU4
NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNl
cnZlci5jcHAgKi87IH07CiAJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9i
c2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUM2RjA5MDI4MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25DYWxsYmFjay5jcHAgKi87IH07Ci0JCUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2su
aCAqLzsgfTsKIAkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYw
OTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsKIAkJ
QzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjUxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovOyB9OwogCQlDNkYwOTE3RjE0M0EyQkI5
MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovOyB9OwotCQlDNkYwOTE4NTE0M0E2QzNC
MDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAv
KiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovOyB9OwogCQlDNkY0MTA0NzEzMEM2RTg5
MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3Bw
ICovOyB9OworCQlDNkY0MjBBMjE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjQy
MEEwMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovOyB9OworCQlD
NkY0MjBBMzE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MjBBMTE2QjcxNjRFMDA1
MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5p
bWF0b3IuY3BwICovOyB9OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5p
bWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
M0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNBRTlGOTBGMTQ2NDQxRjAwMEMy
NDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKQEAgLTEzNDkyLDE3ICsxMzQ5MSwxNSBAQAogCQlDNkYw
OEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uUmVjb3JkLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25SZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvblJl
Y29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwMTE0MzI3QjYxMDA2
ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2
RjA5MDAyMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBNdXRhdGlvbkNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0
OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkw
MDcxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0
OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2
RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011
dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkxN0Ux
NDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkg
LyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0
aCA9IE1vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDNkY0MjBBMDE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxs
YmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjQyMEExMTZCNzE2NEUw
MDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmlt
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0NjQ0MUYwMDBD
MjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5NDcxLDggKzE5NDY4LDYgQEAKIAkJCQlGRTgwREE2MDBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oICovLAogCQkJCUZFODBEQTYxMEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmNwcCAqLywKIAkJCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUg
LyogSlNHZW9wb3NpdGlvbi5oICovLAotCQkJCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uQ2FsbGJhY2suY3BwICovLAotCQkJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywKIAkJCQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkg
LyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4
NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi8sCiAJCQkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovLApAQCAtMjA3OTksNiArMjA3OTQsOCBAQAog
CQkJCTMzMTRBQ0VBMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCAqLywKIAkJ
CQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAq
LywKIAkJCQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmggKi8sCisJCQkJQzZGNDIwQTAxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5jcHAgKi8sCisJCQkJQzZGNDIwQTExNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxs
YmFjay5oICovLAogCQkJCTkzQjcwRDRGMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwICovLAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQkxNENEOEQ4MTEwNkI1MjkwMDBBNDZEMjMg
LyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwICovLApAQCAtMjA5ODUsNyArMjA5ODIsNiBAQAog
CQkJCUUxQURFRDQ2MEU3NkI4REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCAq
LywKIAkJCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5o
ICovLAogCQkJCTEwNTk0NTcyMTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1
ZUN1c3RvbS5jcHAgKi8sCi0JCQkJQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNUYwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdB
QTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAqLywKQEAgLTIyNDE4LDcgKzIyNDE0LDYg
QEAKIAkJCQk4NTAzMUIzMTBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxhdGVkRXZlbnQuY3Bw
ICovLAogCQkJCTg1MDMxQjMyMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZVJlbGF0ZWRFdmVudC5o
ICovLAogCQkJCUM2RjA5MDAxMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmgg
Ki8sCi0JCQkJQzZGMDkwMDIxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaWRs
ICovLAogCQkJCTg1MDMxQjMzMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNwcCAq
LywKIAkJCQk4NTAzMUIzNDBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5oICovLAog
CQkJCTkzRUVDMUYzMDlDMjg3NzcwMEM1MTVEMSAvKiBNdXRhdGlvbkV2ZW50LmlkbCAqLywKQEAg
LTI0NzkxLDcgKzI0Nzg2LDcgQEAKIAkJCQk4OTg3ODVCOTEyMkNBMkE3MDAzQUFCREEgLyogSlNN
ZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMDU5NDU3QTE1QjQyQTQzMDA0
RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYy
OUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovLAorCQkJCUM2RjQyMEEzMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011
dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0
OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA4RkNBMTQz
MTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
MTMzLDggKzI4MTI4LDcgQEAKIAkJCQkxMDU5NDU3NzE1QjQyQTBEMDA0RDM3RkQgLyogSlNNaWNy
b0RhdGFJdGVtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTA1OTQ1NzMxNUI0Mjk1MzAw
NEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4NjYyOUQyMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQzZGMDkwMjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNkYwOTE4NTE0M0E2QzNCMDA2ODU4NDkgLyogSlNN
dXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM2RjQyMEEyMTZC
NzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNjVERjMxRkIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTTXV0YXRpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2Vy
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA5MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBK
U011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA4ZjcxZGE1
YWUzZWYyYTRkMGYwODhiYzZjZDRhZTEzZTg5NjAxYWZhLi45Zjc4NjQ4Y2NhMWRmMDA3NjAwZWVh
ZTZkMjhmZjVjZTZiYzQ1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTExOSw3ICsxMTksNyBAQAogI2luY2x1ZGUgIkpT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAiCi0jaW5jbHVkZSAi
SlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJh
Y2suY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5jcHAi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YjFmYjA1NDVkMjhkYTAwYTAwNzFhY2UyZDc2ZDZiOWY3MjQwMzQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgorCisjaW5jbHVkZSAiSlNN
dXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSlNNdXRhdGlvblJlY29yZC5oIgorI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTTXV0
YXRpb25DYWxsYmFjazo6SlNNdXRhdGlvbkNhbGxiYWNrKEpTT2JqZWN0KiBjYWxsYmFjaywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICA6IEFjdGl2ZURPTUNhbGxiYWNrKGds
b2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9jYWxsYmFjayhQ
YXNzV2VhazxKU09iamVjdD4oY2FsbGJhY2spKQorICAgICwgbV9pc29sYXRlZFdvcmxkKGdsb2Jh
bE9iamVjdC0+d29ybGQoKSkKK3sKK30KKworSlNNdXRhdGlvbkNhbGxiYWNrOjp+SlNNdXRhdGlv
bkNhbGxiYWNrKCkKK3sKK30KKworYm9vbCBKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2
ZXIpCit7CisgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIFJlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7CisKKyAg
ICBKU0xvY2tIb2xkZXIgbG9jayhtX2lzb2xhdGVkV29ybGQtPmdsb2JhbERhdGEoKSk7CisKKyAg
ICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9pc29sYXRlZFdvcmxkLmdldCgpKTsKKyAgICBFeGVjU3RhdGUqIGV4
ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIG11dGF0aW9uTGlzdDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11dGF0aW9ucy0+
c2l6ZSgpOyArK2kpCisgICAgICAgIG11dGF0aW9uTGlzdC5hcHBlbmQodG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIG11dGF0aW9ucy0+YXQoaSkuZ2V0KCkpKTsKKworICAgIEpTVmFsdWUganNPYnNl
cnZlciA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBvYnNlcnZlcik7CisKKyAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEFycmF5KGV4ZWMs
IDAsIGdsb2JhbE9iamVjdCwgbXV0YXRpb25MaXN0KSk7CisgICAgYXJncy5hcHBlbmQoanNPYnNl
cnZlcik7CisKKyAgICBib29sIHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNlOworICAgIC8vIEZJWE1F
OiBFeHRyYWN0IGludm9rZUNhbGxiYWNrKCkgbWV0aG9kLgorICAgIEpTQ2FsbGJhY2tEYXRhKG1f
Y2FsbGJhY2suZ2V0KCksIGdsb2JhbE9iamVjdCkuaW52b2tlQ2FsbGJhY2soanNPYnNlcnZlciwg
YXJncywgJnJhaXNlZEV4Y2VwdGlvbik7CisgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZlMDgzY2JhMDgxY2M2ZDVmZjA4
YTM5MTdiOGExZDhjZTAyZGFkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBKU011dGF0aW9uQ2FsbGJhY2tfaAorI2RlZmluZSBKU011dGF0aW9uQ2Fs
bGJhY2tfaAorCisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU0Nh
bGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTTXV0YXRpb25D
YWxsYmFjayA6IHB1YmxpYyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJh
Y2sgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4g
Y3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU011dGF0aW9uQ2Fs
bGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpOworICAgIH0KKworICAgIHZpcnR1YWwgfkpT
TXV0YXRpb25DYWxsYmFjaygpOworCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0
aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciopIE9WRVJSSURFOwor
CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCitwcml2YXRlOgorICAgIEpTTXV0YXRpb25D
YWxsYmFjayhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsKKwor
ICAgIG11dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fY2FsbGJhY2s7CisgICAgUmVm
UHRyPERPTVdyYXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0YTUwNWY5ZTc4YzQ2YmNjMzc0YmFkMWNlYjYzNDk1MzcyYTk5YjhlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiSlNNdXRhdGlvbkNh
bGxiYWNrLmgiCi0KLSNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKLSNpbmNsdWRlICJKU011
dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+
Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotYm9vbCBK
U011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0
aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIpCi17Ci0gICAgaWYgKCFjYW5JbnZva2VD
YWxsYmFjaygpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIFJlZlB0cjxKU011dGF0aW9u
Q2FsbGJhY2s+IHByb3RlY3QodGhpcyk7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdp
bmRvd0Jhc2U6OmNvbW1vbkpTR2xvYmFsRGF0YSgpKTsKLQotICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKLQotICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIG11dGF0aW9uTGlzdDsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11dGF0
aW9ucy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG11dGF0aW9uTGlzdC5hcHBlbmQodG9KUyhleGVj
LCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBtdXRhdGlvbnMtPmF0KGkpLmdldCgpKSk7Ci0KLSAg
ICBKU1ZhbHVlIGpzT2JzZXJ2ZXIgPSB0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCks
IG9ic2VydmVyKTsKLQotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5h
cHBlbmQoY29uc3RydWN0QXJyYXkoZXhlYywgMCwgbV9kYXRhLT5nbG9iYWxPYmplY3QoKSwgbXV0
YXRpb25MaXN0KSk7Ci0gICAgYXJncy5hcHBlbmQoanNPYnNlcnZlcik7Ci0KLSAgICBib29sIHJh
aXNlZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soanNPYnNl
cnZlciwgYXJncywgJnJhaXNlZEV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuICFyYWlzZWRFeGNlcHRp
b247Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IDA1N2Yz
MmU2NTY1MmFlODA1NzdmMjgyNTI2MjE5MWQ0NzQzZDExMmMuLjI0YzBmZDFlYWEzYzNiYmRiZDEx
NDVhY2ZjYWQ0ZmY0M2NkMGI4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9Qcml2
YXRlTmFtZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC01Miw4ICs1MywxMSBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3RKU011dGF0aW9uTwogICAgIH0KIAogICAgIEpTTXV0YXRpb25PYnNlcnZlckNv
bnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlckNvbnN0
cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBj
YWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rv
ci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3Qo
dG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgTXV0YXRpb25PYnNlcnZl
cjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKSk7CisgICAgUmVmUHRyPEpTTXV0YXRpb25D
YWxsYmFjaz4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpKTsKKyAgICBKU09iamVjdCoganNPYnNlcnZlciA9
IGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE11dGF0
aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSk7CisgICAgUHJpdmF0ZU5h
bWUgcHJvcGVydHlOYW1lOworICAgIGpzT2JzZXJ2ZXItPnB1dERpcmVjdChqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc09ic2VydmVyKTsKIH0KIAogYm9vbCBKU011dGF0
aW9uT2JzZXJ2ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2ZmNjBiNzU5MjJhYWIyNWEyZDEzNWMzMWE5MWRlY2ZkMmYzYWExOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25DYWxsYmFjay5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRp
c3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gRklY
TUU6IFRoaXMgaW50ZXJmYWNlIGlzIG9ubHkgdXNlZCB0byBnZW5lcmF0ZSBjb2RlIGZvciBKU0Mu
Ci0vLyBJdCBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIGh0dHA6Ly93ZWJraXQub3JnL2IvOTM2NjEg
aXMgZml4ZWQuCi1bCi0gICAgQ2FsbGJhY2sKLV0gaW50ZXJmYWNlIE11dGF0aW9uQ2FsbGJhY2sg
ewotICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJh
eSBtdXRhdGlvbnMsIGluIE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwotfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185095</attachid>
            <date>2013-01-28 16:24:32 -0800</date>
            <delta_ts>2013-01-30 12:24:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93661-20130128162119.patch</filename>
            <type>text/plain</type>
            <size>39937</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E4MjYwN2YyYjhiYjM0
MmNjZTFkMzIwZTE2YmFkYjYxZDdmNmJjOC4uZjI1ZDYwNWJmYjRmNWJlMDRiYjk1YmJhZDM1NmIx
ZjljNzgyZGQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAxLTI4ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtKU0NdIE11dGF0aW9uT2Jz
ZXJ2ZXJzIHNob3VsZCBub3QgY3JlYXRlIGNpcmN1bGFyLCBsZWFreSByZWZlcmVuY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzY2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgSlNNdXRhdGlvbkNhbGxiYWNrIGFuIGVudGlyZWx5LWN1c3RvbSBjbGFzcyB0aGF0CisgICAg
ICAgIGhvbGRzIGEgd2VhayByZWZlcmVuY2UgdG8gdGhlIGZ1bmN0aW9uIGl0IHdyYXBzLiBUbyBr
ZWVwIHRoYXQgZnVuY3Rpb24KKyAgICAgICAgYWxpdmUsIGl0IGFsc28gYWRkcyBhIFByaXZhdGVO
YW1lIGJldHdlZW4gdGhlIEpTTXV0YXRpb25PYnNlcnZlcgorICAgICAgICB3cmFwcGVyIGFuZCB0
aGUgZnVuY3Rpb24gd2hlbiB0aGUgTXV0YXRpb25PYnNlcnZlciBpcyBjb25zdHJ1Y3RlZC4KKwor
ICAgICAgICBVbmxpa2UgdGhlIGdlbmVyYXRlZCBKU0MgY2FsbGJhY2tzLCBKU011dGF0aW9uQ2Fs
bGJhY2sgZG9lc24ndCBob2xkIGEKKyAgICAgICAgcmVmZXJlbmNlIHRvIHRoZSBKU0RPTUdsb2Jh
bE9iamVjdCwgaW5zdGVhZCBob2xkaW5nIHRoZQorICAgICAgICBET01XcmFwcGVyV29ybGQgaXQg
d2FzIGNyZWF0ZWQgaW4uIEFzIGFuIEFjdGl2ZURPTUNhbGxiYWNrLCBpdCBhbHNvCisgICAgICAg
IGhvbGRzIGEgd2VhayBwb2ludGVyIHRvIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgKHZpYSBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcikuCisKKyAgICAgICAgSXQncyBub3QgY2xlYXIgdG8gbWUg
aG93IHRvIHdyaXRlIGEgdGVzdCBmb3IgdGhpcy4gVGhlcmUncyBhbiBleGlzdGluZworICAgICAg
ICBtYW51YWwgdGVzdCBpbiBNYW51YWxUZXN0cy9sZWFrLWN5Y2xlLW9ic2VydmVyLXdyYXBwZXIu
aHRtbCB3aGljaCBtYXkKKyAgICAgICAgYmUgb2YgdXNlIGJ1dCB3aGljaCBkb2Vzbid0IHNlZW0g
dG8gY3VycmVudGx5IGdpdmUgbWVhbmluZ2Z1bCBvdXRwdXQuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVz
ZUpTQy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6SlNNdXRhdGlvbkNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6fkpTTXV0YXRpb25DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEpTTXV0YXRpb25DYWxsYmFjayk6IEluc3RlYWQg
b2YgYSBKU0NhbGxiYWNrRGF0YSwgaG9sZCBhIHdlYWsgcmVmIHRvIHRoZSBjYWxsYmFjayBhbmQg
YSBSZWZQdHIgdG8gdGhlIERPTVdyYXBwZXJXb3JsZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0
YXRpb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9u
Q2FsbGJhY2tDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAg
V2hlbiBjb25zdHJ1Y3RpbmcgdGhlIEpTTXV0YXRpb25PYnNlcnZlciwgYWRkIGEgcmVmZXJlbmNl
IHZpYSBQcml2YXRlTmFtZSBmcm9tIHRoZSBNdXRhdGlvbk9ic2VydmVyIHRvIHRoZSBjYWxsYmFj
ayBmdW5jdGlvbi4KKyAgICAgICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5pZGw6IFJlbW92ZWQu
IE5laXRoZXIgSlNDIG5vciBWOCB1c2UgYW4gSURMIGZpbGUgdG8gZ2VuZXJhdGUgdGhpcyBjbGFz
cyBhbnkgbW9yZS4KKwogMjAxMy0wMS0yOCAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBQcm9tb3RlIGNvbXBvc2l0ZWQtc2Nyb2xsaW5nIGxheWVycyB0byBz
dGFja2luZyBjb250YWluZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MmE0YjJiOTcwYTk5
MDEyYTU2YmQ3MGM3M2JiOGM1OTk2ZDY1MzVjLi4xMGE2NjQ5NmFkNGI2ZWFjNjM1NmU1YzE1NGFk
M2IyMzJmMTQwZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzc2LDcgKzM3Niw2IEBAIHNl
dChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRvbS9NZXNzYWdlRXZlbnQuaWRsCiAgICAgZG9tL01l
c3NhZ2VQb3J0LmlkbAogICAgIGRvbS9Nb3VzZUV2ZW50LmlkbAotICAgIGRvbS9NdXRhdGlvbkNh
bGxiYWNrLmlkbAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmlkbAogICAgIGRvbS9NdXRhdGlvbk9i
c2VydmVyLmlkbAogICAgIGRvbS9NdXRhdGlvblJlY29yZC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCAzZTRmNTkwODBkZGI2YTM0OGQ5NzliODM4OWM5ZWJhOWFhOGU1NzI3Li5k
MWE2MWE2MmI4YWQ0YzcxN2ZhOTIxM2NlZGU1ZmFmOGVlMDIzMjQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0yNTQsNyArMjU0LDYgQEAKICNpbmNsdWRlICJKU01ldGFkYXRhLmNw
cCIKICNpbmNsdWRlICJKU01ldGFkYXRhQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTW91c2VF
dmVudC5jcHAiCi0jaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJK
U011dGF0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5jcHAiCiAj
aW5jbHVkZSAiSlNNdXRhdGlvblJlY29yZC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBkYjI1NWUxZDgxYjU3N2RhNjY0Y2Q3NWYwMTE4NmM1YTU3ZGI3NWVlLi41ZDRmMGI1
MDIyMjBhOGU3ODMyODkyNDAxNzBjZWRiMGYzYzAyMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTI0Miw3ICsyNDIsNiBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9kb20vTWVzc2FnZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTWVzc2FnZVBv
cnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCi0gICAgJChXZWJD
b3JlKS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0
aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25SZWNvcmQuaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLnByaQppbmRleCA0YjIyODJlNTlmOWIxODBjMTI2OGI1ODI0OWI1YmJlZGJhZGEzZDQ0
Li4xY2JjYzM3NjYzZTNkMDk1Yzg0MTI3OWIwYmU1OWExNjRmMDc4YTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCkBAIC0yNTQsNyArMjU0LDYgQEAgSURMX0JJTkRJTkdTICs9IFwKICAg
ICAkJFBXRC9kb20vTWVzc2FnZUNoYW5uZWwuaWRsIFwKICAgICAkJFBXRC9kb20vTWVzc2FnZUV2
ZW50LmlkbCBcCiAgICAgJCRQV0QvZG9tL01lc3NhZ2VQb3J0LmlkbCBcCi0gICAgJCRQV0QvZG9t
L011dGF0aW9uQ2FsbGJhY2suaWRsIFwKICAgICAkJFBXRC9kb20vTXV0YXRpb25FdmVudC5pZGwg
XAogICAgICQkUFdEL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAgICAgJCRQV0QvZG9tL011
dGF0aW9uUmVjb3JkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4MWIy
NTMwYzdhY2QyNGRmN2RhYTkwMDE0ODVlM2RkYmI3N2EyNmEwLi5lYTBmNjZlMWM5YTUzMzg3MTFl
OThiZGJhNzQ4ODJiZDFjYmViYjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTU0Myw4ICs1NDMsNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VF
dmVudC5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5jcHAg
XAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKQEAgLTEzOTUsNyArMTM5Myw2IEBAIGRvbV9iaW5kaW5nX2lk
bHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL01lc3NhZ2VFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkv
ZG9tL01lc3NhZ2VQb3J0LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAot
CSQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9N
dXRhdGlvbkV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwg
XAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCkBAIC0yMzkzLDcgKzIzOTAs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
c3NhZ2VQb3J0Q3VzdG9tLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
dXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
dXRhdGlvbkNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA0YjljZGZhY2JiYTkzMmZmZWJjZjQzNDUyZjJl
YmVlYzBkOGZlNDMzLi5kNTA5ODcyOGJlNTA0ZTFjM2E2MzhmZDVhM2UwNTgwZjVlY2E1NjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTE1NCw3ICsxNTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICAgYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmggXAogICAgICBiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1
c3RvbS5jcHAgXAotICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
IFwKKyAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCiAgICAgIGJpbmRp
bmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9K
U05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20u
Y3BwIFwKQEAgLTEzNjcsNiArMTM2Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGJpbmRpbmdzL2pz
L0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3Rl
bmVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uaCBcCisgICAgYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggXAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5oIFwKICAgICBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCmluZGV4
IGE1ZTY5ZjU1MmYwMmVmNDJmZjE5NzhmOWIyNzBkZWRlODllYjkyMzguLjA5ZjIyYzJkNjc2YmJh
MjY4NWYzMGNlMTI2ODA5MjA3MjljZGY0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Vz
ZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTExNCw3ICsx
MTQsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAotICAg
IGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1ZmUy
ZDg0NjU3NGE3YTJjMDk1NWI4MjA4MjVmZDZhMTkxN2U4NjIzLi40MTIyM2IyNzc3YmE1NTk5ZWJh
M2IwZDVlNDRlMjdmNWFjNTY4MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02NTc2LDggKzY1NzYs
NiBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZXRhZGF0YUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCcsCi0gICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2Fs
bGJhY2suY3BwJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNdXRhdGlvbk9ic2VydmVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDEyOTQ0YTU4MTFjNDI3MmZlZDIyMjI3Y2IyMTVjNWE5OTgw
YWRiNTAuLmQxOGYxZjI0NDM4ZjU5NTA0M2ZmZWZkY2E3ZTQxMGNlMDQwMzNiN2MgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xMTczNCw2MiAr
MTE3MzQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTTXV0YXRpb25DYWxsYmFjay5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxiYWNrLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkV2
ZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC03MDQ0NSw3ICs3MDM4
OSw3IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTcw
NDk3LDYgKzcwNDQxLDEwIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlv
bkNhbGxiYWNrLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNjZhMzAyMmIzNTVlNzlkYjVhYzk3Nzg4ZWJk
YTBmZmI3NmRkOGQ4NS4uYmM5MGU1MDRkNzdiNWNkYjczYzgzNzJlYzY5MTBlZTgzMDgwMzQ2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBA
IC04NzQsMTAgKzg3NCw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U011dGF0aW9uQ2FsbGJhY2suY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTTXV0YXRpb25FdmVudC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KQEAgLTUzMDEsNyArNTI5Nyw3IEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9u
Q2FsbGJhY2suY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CkBAIC02MDI2LDcgKzYwMjIsNiBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU01ldGFkYXRhQ2FsbGJhY2suaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNNb3VzZUV2ZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TXV0YXRpb25DYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0
aW9uRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbk9ic2Vy
dmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25SZWNvcmQuaCIg
Lz4KQEAgLTgwMTAsNiArODAwNSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU0xvY2F0aW9uQ3VzdG9tLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTWVzc2FnZVBvcnRDdXN0b20uaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJD
b25kaXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIiAvPgpAQCAtODY3NSw0ICs4NjcxLDQgQEAKICAgPElt
cG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4K
ICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgPC9JbXBvcnRHcm91
cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKaW5kZXggMDI1YzQ4MzJkN2M2NTM1ZWVjYmVmYzdhNGY5ZDU4YzMxMTgzM2M5MS4u
YjVhZTYxYzI4ZGZhNzk4YmVmNjg5YzAwMjIxNjhiNmM4MzliNzk5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpA
QCAtOTQyLDkgKzk0Miw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTW91c2VFdmVu
dC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uQ2FsbGJhY2suY3Bw
Ij4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkV2ZW50LmNwcCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC02
MDI3LDcgKzYwMjQsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNc
SlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3Nc
anM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGJpbmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCI+CiAgICAg
ICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIj4KQEAgLTc0NTEsOSArNzQ0OCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TW91c2VFdmVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbkNhbGxi
YWNrLmgiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uRXZlbnQuaCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBA
IC0xMjc3OSw2ICsxMjc3Myw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5n
c1xqc1xKU01lc3NhZ2VQb3J0Q3VzdG9tLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrLmgiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xq
czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTUxODUsNCArMTUxODIsNCBAQAogICAgICAg
PEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KICAgPC9J
dGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9q
ZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDM0ZTAwYzVkOWM5ZGE4NDlmNjU1ZDBlY2I5ZGQwMWNjY2E2ZmM0OWIuLmI0MGYz
MmQzZmU3NmMxN2M0ZjQzN2IxMTM4Y2M1MGE5N2FlZmFjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5NTIsMTMgKzU5NTIs
MTIgQEAKIAkJQzZGMDkwMEExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDAxMTQz
MjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJCUM2RjA5MDBFMTQz
MjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBN
dXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsKIAkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1ODQ5IC8q
IE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzZGMDkw
MjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyMDE0MzI3RDRGMDA2ODU4
NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsKLQkJQzZGMDkwMjkxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFjay5oICovOyB9OwogCQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
ICovOyB9OwogCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAy
NTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi87IH07CiAJCUM2RjA5
MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxN0UxNDNBMkJC
OTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07Ci0JCUM2RjA5
MTg1MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxODQxNDNBNkMz
QjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi87IH07CiAJCUM2RjQx
MDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVu
dHJ5QmFzZS5jcHAgKi87IH07CisJCUM2RjQyMEEyMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0
aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGNDIwQTAxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAg
Ki87IH07CisJCUM2RjQyMEEzMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjQyMEEx
MTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKIAkJQ0EzQkY2
N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYx
NDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIw
IC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwpAQCAtMTM0OTIsMTcgKzEzNDkxLDE1
IEBACiAJCUM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25SZWNvcmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOEZDODE0MzEwMDBEMDA2ODU4NDkg
LyogSlNNdXRhdGlvblJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U011dGF0aW9uUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDAx
MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQzZGMDkwMDIxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25P
YnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlv
bk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDYxNDMy
N0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2Fs
bGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlv
bkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjExNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAyNTE0MzI3RDRGMDA2
ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZl
ckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MTg0MTQzQTZD
M0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVu
dHJ5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnRyeUJh
c2UuY3BwOyBwYXRoID0gTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5QmFzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjQyMEEwMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0
aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGNDIw
QTExNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0QxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBE
MTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk0NzEsOCArMTk0NjgsNiBAQAogCQkJCUZFODBEQTYw
MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJCQkJRkU4MERBNjEwRTlD
NDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLAogCQkJCUZFODBEQTYyMEU5QzQ3
MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8sCi0JCQkJQzZGMDkwMjAxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8sCi0JCQkJQzZGMDkwMjExNDMyN0Q0
RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovLAogCQkJCUM2RjA5MDI0MTQzMjdE
NEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCUM2RjA5MDI1MTQz
MjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLywKIAkJCQlDNkYwOEZDNzE0
MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8sCkBAIC0yMDc5OSw2ICsy
MDc5NCw4IEBACiAJCQkJMzMxNEFDRUExMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFz
ZS5oICovLAogCQkJCThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVj
U3RhdGUuY3BwICovLAogCQkJCThGOTM0RDgzMTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCAqLywKKwkJCQlDNkY0MjBBMDE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRh
dGlvbkNhbGxiYWNrLmNwcCAqLywKKwkJCQlDNkY0MjBBMTE2QjcxNjRFMDA1MkE5RjIgLyogSlNN
dXRhdGlvbkNhbGxiYWNrLmggKi8sCiAJCQkJOTNCNzBENEYwOUVCMEM3QzAwOUQ4NDY4IC8qIEpT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgKi8sCiAJCQkJOTNCNzBENTAwOUVCMEM3QzAwOUQ4
NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oICovLAogCQkJCTE0Q0Q4RDgxMTA2QjUy
OTAwMEE0NkQyMyAvKiBKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgKi8sCkBAIC0yMDk4NSw3ICsy
MDk4Miw2IEBACiAJCQkJRTFBREVENDYwRTc2QjhERDAwNEExQTVFIC8qIEpTTWVzc2FnZVBvcnRD
dXN0b20uY3BwICovLAogCQkJCTQxRjU4NEM2MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQ
b3J0Q3VzdG9tLmggKi8sCiAJCQkJMTA1OTQ1NzIxNUI0Mjk1MzAwNEQzN0ZEIC8qIEpTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCAqLywKLQkJCQlDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkg
LyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQlDNkYwOTE3RTE0M0EyQkI5
MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI1
RjBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwICovLAogCQkJCUJD
RDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwICovLApAQCAtMjI0MTgs
NyArMjI0MTQsNiBAQAogCQkJCTg1MDMxQjMxMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZVJlbGF0
ZWRFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzIwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlUmVs
YXRlZEV2ZW50LmggKi8sCiAJCQkJQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9u
Q2FsbGJhY2suaCAqLywKLQkJCQlDNkYwOTAwMjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25D
YWxsYmFjay5pZGwgKi8sCiAJCQkJODUwMzFCMzMwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9u
RXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjM0MEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2
ZW50LmggKi8sCiAJCQkJOTNFRUMxRjMwOUMyODc3NzAwQzUxNUQxIC8qIE11dGF0aW9uRXZlbnQu
aWRsICovLApAQCAtMjQ3OTEsNyArMjQ3ODYsNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNB
QUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTEwNTk0NTdB
MTVCNDJBNDMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTg2NjI5RDEwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQzZGMDkwMjkxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzZGNDIwQTMxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0
YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMxRkMwOUQxQ0M2MDAwMEJF
MzI1IC8qIEpTTXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMkQxNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzZGMDhGQ0ExNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjgxMzMsOCArMjgxMjgsNyBAQAogCQkJCTEwNTk0NTc3MTVCNDJBMEQwMDREMzdG
RCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxMDU5NDU3
MzE1QjQyOTUzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg2NjI5RDIwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlDNkYwOTAyODE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM2RjA5MTg1MTQzQTZDM0IwMDY4
NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzZGNDIwQTIxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkxN0YxNDNBMkJCOTAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmlu
ZGV4IDhmNzFkYTVhZTNlZjJhNGQwZjA4OGJjNmNkNGFlMTNlODk2MDFhZmEuLjlmNzg2NDhjY2Ex
ZGYwMDc2MDBlZWFlNmQyOGZmNWNlNmJjNDVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTE5LDcgKzExOSw3IEBACiAj
aW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZVBv
cnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCIK
LSNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTXV0
YXRpb25DYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2Rl
Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0
YXRpb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9u
Q2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmNGM5MTdiZTM3NGNmZjQxYzIyZTVmYTdhZjZhODY1
ZjE4YTY1ODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCisKKyNp
bmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJKU011dGF0aW9uUmVjb3Jk
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNMb2NrLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworSlNNdXRhdGlvbkNhbGxiYWNrOjpKU011dGF0aW9uQ2FsbGJhY2soSlNPYmplY3QqIGNh
bGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIDogQWN0aXZlRE9N
Q2FsbGJhY2soZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgLCBt
X2NhbGxiYWNrKFBhc3NXZWFrPEpTT2JqZWN0PihjYWxsYmFjaykpCisgICAgLCBtX2lzb2xhdGVk
V29ybGQoZ2xvYmFsT2JqZWN0LT53b3JsZCgpKQoreworfQorCitKU011dGF0aW9uQ2FsbGJhY2s6
On5KU011dGF0aW9uQ2FsbGJhY2soKQoreworfQorCitib29sIEpTTXV0YXRpb25DYWxsYmFjazo6
aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9ic2Vy
dmVyKiBvYnNlcnZlcikKK3sKKyAgICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgUmVmUHRyPEpTTXV0YXRpb25DYWxsYmFjaz4gcHJvdGVjdCh0
aGlzKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKG1faXNvbGF0ZWRXb3JsZC0+Z2xvYmFsRGF0
YSgpKTsKKworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGNvbnRl
eHQsIG1faXNvbGF0ZWRXb3JsZC5nZXQoKSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBtdXRhdGlv
bkxpc3Q7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMtPnNpemUoKTsgKytp
KQorICAgICAgICBtdXRhdGlvbkxpc3QuYXBwZW5kKHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBt
dXRhdGlvbnMtPmF0KGkpLmdldCgpKSk7CisKKyAgICBKU1ZhbHVlIGpzT2JzZXJ2ZXIgPSB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgb2JzZXJ2ZXIpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RBcnJheShleGVjLCAwLCBnbG9iYWxP
YmplY3QsIG11dGF0aW9uTGlzdCkpOworICAgIGFyZ3MuYXBwZW5kKGpzT2JzZXJ2ZXIpOworCisg
ICAgYm9vbCByYWlzZWRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICAvLyBGSVhNRTogRXh0cmFjdCBp
bnZva2VDYWxsYmFjaygpIG1ldGhvZC4KKyAgICBKU0NhbGxiYWNrRGF0YShtX2NhbGxiYWNrLmdl
dCgpLCBnbG9iYWxPYmplY3QpLmludm9rZUNhbGxiYWNrKGpzT2JzZXJ2ZXIsIGFyZ3MsICZyYWlz
ZWRFeGNlcHRpb24pOworICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2ZTA4M2NiYTA4MWNjNmQ1ZmYwOGEzOTE3YjhhMWQ4
Y2UwMmRhZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSlNNdXRhdGlvbkNhbGxiYWNrX2gKKyNkZWZpbmUgSlNNdXRhdGlvbkNhbGxiYWNrX2gKKwor
I2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEu
aCIKKyNpbmNsdWRlICJNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU011dGF0aW9uQ2FsbGJhY2sgOiBw
dWJsaWMgTXV0YXRpb25DYWxsYmFjaywgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU0M6
OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNNdXRhdGlvbkNhbGxiYWNrKGNhbGxi
YWNrLCBnbG9iYWxPYmplY3QpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5KU011dGF0aW9uQ2Fs
bGJhY2soKTsKKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFy
cmF5KiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKworICAgIHZpcnR1
YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KKworcHJpdmF0ZToKKyAgICBKU011dGF0aW9uQ2FsbGJhY2soSlND
OjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisKKyAgICBtdXRhYmxl
IEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2NhbGxiYWNrOworICAgIFJlZlB0cjxET01XcmFw
cGVyV29ybGQ+IG1faXNvbGF0ZWRXb3JsZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0
aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRh
dGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE1
MDVmOWU3OGM0NmJjYzM3NGJhZDFjZWI2MzQ5NTM3MmE5OWI4ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgot
Ci0jaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCi0jaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2Vy
dmVyLmgiCi0jaW5jbHVkZSAiSlNNdXRhdGlvblJlY29yZC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotCi11c2luZyBu
YW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWJvb2wgSlNNdXRhdGlvbkNh
bGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIE11dGF0
aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQotewotICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBSZWZQdHI8SlNNdXRhdGlvbkNhbGxiYWNrPiBw
cm90ZWN0KHRoaXMpOwotCi0gICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpj
b21tb25KU0dsb2JhbERhdGEoKSk7Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2RhdGEtPmds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBt
dXRhdGlvbkxpc3Q7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMtPnNpemUo
KTsgKytpKQotICAgICAgICBtdXRhdGlvbkxpc3QuYXBwZW5kKHRvSlMoZXhlYywgbV9kYXRhLT5n
bG9iYWxPYmplY3QoKSwgbXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOwotCi0gICAgSlNWYWx1ZSBq
c09ic2VydmVyID0gdG9KUyhleGVjLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBvYnNlcnZlcik7
Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKGNvbnN0
cnVjdEFycmF5KGV4ZWMsIDAsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCksIG11dGF0aW9uTGlzdCkp
OwotICAgIGFyZ3MuYXBwZW5kKGpzT2JzZXJ2ZXIpOwotCi0gICAgYm9vbCByYWlzZWRFeGNlcHRp
b24gPSBmYWxzZTsKLSAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGpzT2JzZXJ2ZXIsIGFyZ3Ms
ICZyYWlzZWRFeGNlcHRpb24pOwotICAgIHJldHVybiAhcmFpc2VkRXhjZXB0aW9uOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAppbmRleCAwNTdmMzJlNjU2NTJhZTgw
NTc3ZjI4MjUyNjIxOTFkNDc0M2QxMTJjLi4yNGMwZmQxZWFhM2MzYmJkYmQxMTQ1YWNmY2FkNGZm
NDNjZDBiOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJK
U011dGF0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvUHJpdmF0ZU5hbWUuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNTIsOCArNTMsMTEgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNNdXRhdGlvbk8KICAgICB9CiAKICAgICBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvciog
anNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcio+KGV4
ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBK
U011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9i
amVjdCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywg
anNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShj
YWxsYmFjay5yZWxlYXNlKCkpKSkpOworICAgIFJlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGpzT2JzZXJ2ZXIgPSBhc09iamVjdCh0
b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBNdXRhdGlvbk9ic2VydmVy
OjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKSkpOworICAgIFByaXZhdGVOYW1lIHByb3BlcnR5
TmFtZTsKKyAgICBqc09ic2VydmVyLT5wdXREaXJlY3QoanNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBvYmplY3QpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNPYnNlcnZlcik7CiB9CiAKIGJvb2wgSlNNdXRhdGlvbk9ic2VydmVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25DYWxsYmFjay5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmZjYw
Yjc1OTIyYWFiMjVhMmQxMzVjMzFhOTFkZWNmZDJmM2FhMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2Fs
bGJhY2suaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEZJWE1FOiBUaGlzIGlu
dGVyZmFjZSBpcyBvbmx5IHVzZWQgdG8gZ2VuZXJhdGUgY29kZSBmb3IgSlNDLgotLy8gSXQgc2hv
dWxkIGJlIHJlbW92ZWQgb25jZSBodHRwOi8vd2Via2l0Lm9yZy9iLzkzNjYxIGlzIGZpeGVkLgot
WwotICAgIENhbGxiYWNrCi1dIGludGVyZmFjZSBNdXRhdGlvbkNhbGxiYWNrIHsKLSAgICBbQ3Vz
dG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGluIE11dGF0aW9uUmVjb3JkQXJyYXkgbXV0YXRpb25z
LCBpbiBNdXRhdGlvbk9ic2VydmVyIG9ic2VydmVyKTsKLX07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>