<?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>234155</bug_id>
          
          <creation_ts>2021-12-10 10:18:36 -0800</creation_ts>
          <short_desc>[Shadow Realms] Use WebCore module loaders for shadow realm importValue</short_desc>
          <delta_ts>2022-01-24 08:06:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Griego">joseph.j.griego</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>joseph.j.griego</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822784</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-10 10:18:36 -0800</bug_when>
    <thetext>[Shadow Realms] Use WebCore module loaders for shadow realm importValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822787</commentid>
    <comment_count>1</comment_count>
      <attachid>446750</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-10 10:24:31 -0800</bug_when>
    <thetext>Created attachment 446750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822793</commentid>
    <comment_count>2</comment_count>
      <attachid>446754</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-10 10:32:58 -0800</bug_when>
    <thetext>Created attachment 446754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822800</commentid>
    <comment_count>3</comment_count>
      <attachid>446754</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-10 10:44:18 -0800</bug_when>
    <thetext>Comment on attachment 446754
Patch

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

Quick comment.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:61
&gt; +    RefPtr&lt;JSC::VM&gt; m_vm;

I don&apos;t think we need to hold vm since it should be the same to the original JSGlobalObject.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:62
&gt; +    JSC::Strong&lt;JSDOMGlobalObject&gt; m_incubatingWrapper;

It will leak JSGlobalObject if we have cycles. So, this is not OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822904</commentid>
    <comment_count>4</comment_count>
      <attachid>446787</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-10 12:48:38 -0800</bug_when>
    <thetext>Created attachment 446787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822984</commentid>
    <comment_count>5</comment_count>
      <attachid>446817</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-10 14:29:23 -0800</bug_when>
    <thetext>Created attachment 446817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823734</commentid>
    <comment_count>6</comment_count>
      <attachid>447057</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-13 13:50:17 -0800</bug_when>
    <thetext>Created attachment 447057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824005</commentid>
    <comment_count>7</comment_count>
      <attachid>447134</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-14 08:29:41 -0800</bug_when>
    <thetext>Created attachment 447134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824075</commentid>
    <comment_count>8</comment_count>
      <attachid>447147</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-14 12:27:15 -0800</bug_when>
    <thetext>Created attachment 447147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824341</commentid>
    <comment_count>9</comment_count>
      <attachid>447147</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-15 07:01:59 -0800</bug_when>
    <thetext>Comment on attachment 447147
Patch

Yusuke,

Thanks for pointing those out; I&apos;m not sure how I missed them &apos;:)

Finally got the mac builds, etc. passing :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824525</commentid>
    <comment_count>10</comment_count>
      <attachid>447147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-15 13:29:25 -0800</bug_when>
    <thetext>Comment on attachment 447147
Patch

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

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:108
&gt; +const JSDOMGlobalObject* JSShadowRealmGlobalScopeBase::incubating() const
&gt; +{
&gt; +    auto incubatingWrapper = m_wrapped-&gt;m_incubatingWrapper.get();
&gt; +    ASSERT(incubatingWrapper);
&gt; +    return incubatingWrapper;
&gt; +}

Why is it guaranteed that this incubatingWrapper is alive?
I think it is possible that the parent one goes away, while this JSShadowRealmGlobalObject is kept alive.
Is it correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824531</commentid>
    <comment_count>11</comment_count>
      <attachid>447147</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-15 13:47:39 -0800</bug_when>
    <thetext>Comment on attachment 447147
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:108
&gt;&gt; +}
&gt; 
&gt; Why is it guaranteed that this incubatingWrapper is alive?
&gt; I think it is possible that the parent one goes away, while this JSShadowRealmGlobalObject is kept alive.
&gt; Is it correct?

I wasn&apos;t able to think of a scenario where this would happen, but I could have missed something.



The JSShadowRealmGlobalObject should always be owned by a JSC::ShadowRealmObject whose globalObject is incubatingWrapper.

... More importantly, i think, it ought to be impossible to be in an active frame with the shadow realm global object as the active global object unless:

- a parent call frame has the incubating realm active (i.e. a call via a wrapped function or `ShadowRealm.prototype.evaluate`)
- or if we are loading module code (via `ShadowRealm.prototype.importValue`) in which case AIUI the event loop for the incubating global object (where we scheduled the module load) guarantees the corresponding JSGlobalObject wrapper should still be around.

I may have misunderstood some or all of this, though</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824545</commentid>
    <comment_count>12</comment_count>
      <attachid>447147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-15 14:26:42 -0800</bug_when>
    <thetext>Comment on attachment 447147
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:108
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; Why is it guaranteed that this incubatingWrapper is alive?
&gt;&gt; I think it is possible that the parent one goes away, while this JSShadowRealmGlobalObject is kept alive.
&gt;&gt; Is it correct?
&gt; 
&gt; I wasn&apos;t able to think of a scenario where this would happen, but I could have missed something.
&gt; 
&gt; 
&gt; 
&gt; The JSShadowRealmGlobalObject should always be owned by a JSC::ShadowRealmObject whose globalObject is incubatingWrapper.
&gt; 
&gt; ... More importantly, i think, it ought to be impossible to be in an active frame with the shadow realm global object as the active global object unless:
&gt; 
&gt; - a parent call frame has the incubating realm active (i.e. a call via a wrapped function or `ShadowRealm.prototype.evaluate`)
&gt; - or if we are loading module code (via `ShadowRealm.prototype.importValue`) in which case AIUI the event loop for the incubating global object (where we scheduled the module load) guarantees the corresponding JSGlobalObject wrapper should still be around.
&gt; 
&gt; I may have misunderstood some or all of this, though

But what happens if,

1. Create same domain iframe.
2. Create ShadowRealm thing for this iframe&apos;s JSDOMGlobalObject
3. Remove iframe while keep refereing ShadowRealm.
4. Then, run script inside ShadowRealm and that script keeps JSGlobalObject alive by setting it to somewhere
5. Then, miss the reference to ShadowRealmObject.

Then, while the ShadowRealm globalObject is alive, parent JSDOMGlobalObject and ShadowRealmObject are GC-ed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824772</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-12-16 08:54:21 -0800</bug_when>
    <thetext>&gt; But what happens if,
&gt; 
&gt; 1. Create same domain iframe.
&gt; 2. Create ShadowRealm thing for this iframe&apos;s JSDOMGlobalObject
&gt; 3. Remove iframe while keep refereing ShadowRealm.
&gt; 4. Then, run script inside ShadowRealm and that script keeps JSGlobalObject
&gt; alive by setting it to somewhere
&gt; 5. Then, miss the reference to ShadowRealmObject.
&gt; 
&gt; Then, while the ShadowRealm globalObject is alive, parent JSDOMGlobalObject
&gt; and ShadowRealmObject are GC-ed.

Oof, you&apos;re absolutely right. I didn&apos;t realize it was possible to share objects directly between same-domain iframes; you learn something new every day I guess!

I&apos;ll re-work things and come back with a new test to this effect. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825115</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-17 10:19:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/86639778&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829864</commentid>
    <comment_count>15</comment_count>
      <attachid>448861</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-11 11:15:07 -0800</bug_when>
    <thetext>Created attachment 448861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830269</commentid>
    <comment_count>16</comment_count>
      <attachid>448861</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-12 12:09:26 -0800</bug_when>
    <thetext>Comment on attachment 448861
Patch

I believe this version addresses the lifetime issues--whenever creating a shadow realm for a DOM context, we walk up the document tree as far as possible while staying in the same DOMWrapperWorld and use that document&apos;s wrapper as the delegate for module fetches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831314</commentid>
    <comment_count>17</comment_count>
      <attachid>448861</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-16 11:40:26 -0800</bug_when>
    <thetext>Comment on attachment 448861
Patch

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

This looks great, but I see a lot of room for small improvements, especially in coding style.

I am setting review- only because of the infinite loop I found in JSDOMGlobalObject::deriveShadowRealmGlobalObject.

&gt; Source/JavaScriptCore/runtime/ShadowRealmObject.h:51
&gt; +    static ShadowRealmObject* create(VM&amp;, Structure*, JSGlobalObject*);

Worth considering whether we want to pass both VM&amp; and JSGlobalObject*. Since you can quickly and efficiently get the VM from the global object, sometimes we choose to pass only the global object. But this might not be one of those places.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:272
&gt; +    if (inherits&lt;JSShadowRealmGlobalScopeBase&gt;(vm()))
&gt; +        return jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(this)-&gt;scriptExecutionContext();

Slightly puzzled by the way this list is sorted; not quite alphabetical. Good that we put the two from &quot;normal web browsing&quot; first, I guess, for performance optimization reasons maybe?

Eventually we will have to change this so it walks the inheritance chain only once rather than 6 times in a row. Hoping this is not yet a performance bottleneck.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:514
&gt; +    if (globalObject-&gt;inherits&lt;JSShadowRealmGlobalScopeBase&gt;(vm))
&gt; +        return &amp;jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(globalObject)-&gt;wrapped().moduleLoader();

Same comments.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:579
&gt; +JSC::JSGlobalObject* JSDOMGlobalObject::deriveShadowRealmGlobalObject(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject)

Irritating that this function takes JSGlobalObject and needs to &quot;know&quot; it&apos;s a JSDOMGlobalObject? I know many other functions do that too, but it’s a frustrating pattern. All those runtime checks for something that is guaranteed. But maybe there’s no simple solution because of the method table.

Also, why take both a vm and a globalObject? Would be nice to not take the vm unless it’s an important optimization. Eventually all the extra arguments start to make functions harder to read.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:596
&gt; +        auto doc = downcast&lt;Document&gt;(context);

The abbreviation &quot;doc&quot; is a bit of an anti-pattern. We use words instead of abbreviations most of the time. I suggest document.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:605
&gt; +        while (!doc-&gt;isTopDocument()) {
&gt; +            auto candidate = doc-&gt;parentDocument();
&gt; +            auto topGlobal = jsCast&lt;JSDOMGlobalObject*&gt;(candidate-&gt;globalObject());
&gt; +            if (&amp;topGlobal-&gt;world() == &amp;domGlobalObject-&gt;world()) {
&gt; +                doc = candidate;
&gt; +                domGlobalObject = topGlobal;
&gt; +            }
&gt; +        }

This loop looks wrong in a risky way. If the worlds are ever not equal, it becomes an infinite loop, since nothing changes doc! And this proves we don’t have extensive-enough test coverage; it might be difficult to construct a test for this, but we need one.

I think it would be nice if we could find a way to write it as a for loop.

Also the cast to JSDOMGlobalObject is safe, but why would we have to think about that here. It would be best to change the return type of globalObject in Document, or even some lower base class, so we don’t have to do the cast here.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:611
&gt; +    Structure* structure = JSShadowRealmGlobalScope::createStructure(vm, nullptr, JSC::jsNull());

I suggest auto here.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.h:42
&gt; +class ScriptModuleLoader;

I don’t see ScriptModuleLoader being newly used in this file, so why did we have to add this forward declaration.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:117
&gt; +    auto obj = jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(object)-&gt;incubating();

WebKit coding style says we use words, not abbreviations. I know we are using &quot;obj&quot; to dodge the argument name &quot;object&quot;. How about calling the local variable &quot;scope&quot; or calling the argument &quot;untypedObject&quot; or &quot;globalObject&quot;?

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h:42
&gt; +    template&lt;typename, JSC::SubspaceAccess&gt;
&gt; +    static void subspaceFor(JSC::VM&amp;) { RELEASE_ASSERT_NOT_REACHED(); }

Frustrating that we have to do a runtime assertion here rather than an error at compile time or link time? Is there some way to do that? Also, I would suggest putting this all on a single line to make the class definition easier to read.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h:50
&gt; +    const JSDOMGlobalObject* incubating() const;

Not thrilled with an adjective, &quot;incubating&quot; as the name for a getter. I suppose &quot;wrapped&quot; already follows that pattern, but consider &quot;incubatingRealm&quot; instead.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h:54
&gt; +    JSDOMGlobalObject* incubating()
&gt; +    {
&gt; +        return const_cast&lt;JSDOMGlobalObject*&gt;(const_cast&lt;const JSShadowRealmGlobalScopeBase*&gt;(this)-&gt;incubating());
&gt; +    }

Can we put the body of this inline function at the end of the file rather than in the middle of the class? I think the class definition becomes easier to read if we are not interspersing code with declarations.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h:58
&gt; +    static const JSC::GlobalObjectMethodTable s_globalObjectMethodTable;

Does this need to be public? Can it be private or protected instead?

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h:66
&gt; +    static bool supportsRichSourceInfo(const JSC::JSGlobalObject*);
&gt; +    static bool shouldInterruptScript(const JSC::JSGlobalObject*);
&gt; +    static bool shouldInterruptScriptBeforeTimeout(const JSC::JSGlobalObject*);
&gt; +    static JSC::RuntimeFlags javaScriptRuntimeFlags(const JSC::JSGlobalObject*);
&gt; +    static JSC::ScriptExecutionStatus scriptExecutionStatus(JSC::JSGlobalObject*, JSC::JSObject*);
&gt; +    static void queueMicrotaskToEventLoop(JSC::JSGlobalObject&amp;, Ref&lt;JSC::Microtask&gt;&amp;&amp;);
&gt; +    static void reportViolationForUnsafeEval(JSC::JSGlobalObject*, JSC::JSString*);

These can all be private, I believe, rather than public.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:80
&gt; +    auto loader = WTF::makeUnique&lt;ScriptModuleLoader&gt;(m_context, m_ownerType);

The &quot;WTF::&quot; prefix should not be needed here.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:257
&gt; +    if (m_shadowRealmGlobal) {
&gt; +        RELEASE_AND_RETURN(scope, moduleRecord-&gt;evaluate(m_shadowRealmGlobal, awaitedValue, resumeMode));
&gt; +    } else if (m_ownerType == OwnerType::Document) {

WebKit coding style says no braces here.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.h:58
&gt; +    std::unique_ptr&lt;ScriptModuleLoader&gt; shadowRealmLoader(JSC::JSGlobalObject* realmGlobal) const;

Why does this return std::unique_ptr instead of UniqueRef? Can it return nullptr?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2887
&gt; +    } elsif ($interfaceName eq &quot;ShadowRealmGlobalScope&quot; || $codeGenerator-&gt;InheritsInterface($interface, &quot;WorkerGlobalScope&quot;) || $codeGenerator-&gt;InheritsInterface($interface, &quot;WorkletGlobalScope&quot;)) {

This code is getting repetitive. I suggest a helper for this set of three names for use in the 5 or 6 places we have them in this patch.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.cpp:46
&gt; +{ }

I think our style says to put these on subsequent lines, rather than one one line.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.cpp:63
&gt; +JSShadowRealmGlobalScopeBase* ShadowRealmGlobalScope::wrapper()
&gt; +{
&gt; +    return m_wrapper.get();
&gt; +}

If we can do it without adding includes, I suggest putting this as an inline function body into the header.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.cpp:65
&gt; +ShadowRealmGlobalScope::~ShadowRealmGlobalScope() { }

If we need to explicitly put this in the .cpp file, and I am not sure we do, please use &quot;= default&quot;.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:28
&gt; +#include &lt;JavaScriptCore/RuntimeFlags.h&gt;

Why does this file include Strong.h? It can be important to minimize includes in headers, so please double check there’s nothing extra here.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:29
&gt; +#include &lt;JavaScriptCore/Strong.h&gt;

Why does this file include Strong.h? It can be important to minimize includes in headers, so please double check there’s nothing extra here.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:36
&gt; +namespace JSC { class VM; }

This is nice and attractive, but not the correct WebKit style. But also, this file includes Strong.h, so there’s no need for this forward declaration. But maybe if you remove the Strong.h include you will need to keep this and it would be good to use the normal WebKit style.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:43
&gt; +class JSShadowRealmGlobalScopeBase;
&gt; +class JSDOMGlobalObject;
&gt; +class ScriptModuleLoader;
&gt; +class ScriptExecutionContext;

These should be sorted alphabetically.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:50
&gt; +    static RefPtr&lt;ShadowRealmGlobalScope&gt; tryCreate(JSDOMGlobalObject*, ScriptModuleLoader*);

This should take JSDOMGlobalObject&amp;, not JSDOMGlobalObject*.

Also, why does this take a ScriptModuleLoader*? Can’t this class call scriptModuleLoader? Would that be a layering violation?

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:58
&gt; +    ShadowRealmGlobalScope(JSDOMGlobalObject*, ScriptModuleLoader*);

Ditto.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.h:64
&gt; +    JSC::Weak&lt;JSShadowRealmGlobalScopeBase&gt; m_wrapper { };
&gt; +    std::unique_ptr&lt;ScriptModuleLoader&gt; m_moduleLoader { };

These &quot;{ }&quot; are not needed. Non-scalars like these are initialized without doing anything explicit. On the other hand, m_parentLoader should have &quot;{ nullptr }&quot; after it, even if it’s dead code, because it’s harmless and unlikely to generate any extra code, and it’s good to be able to see that nothing is uninitialized without reading the bodies of all constructors.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.idl:27
&gt; + */
&gt; +
&gt; +
&gt; +[

Extra blank line here. Please use only one.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.idl:33
&gt; +  readonly attribute ShadowRealmGlobalScope self;

Please indent 4 unless there is a reason not to.

&gt; LayoutTests/ChangeLog:7
&gt; +        Improve test coverage a bit for shadow realms, especially running
&gt; +        nested, in worker contexts, or in iframes.

Can these tests be added to Web Platform Tests instead of WebKit-specific tests?

I personally find our WebKit-specific tests easier to read and maintain, but Web Platform Tests server an important additional purpose of helping us achieve interoperability between web browsers, and so they are strongly preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831782</commentid>
    <comment_count>18</comment_count>
      <attachid>448861</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-18 13:15:29 -0800</bug_when>
    <thetext>Comment on attachment 448861
Patch

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

Darin,

Many thanks for the detailed review.

I&apos;ll re-check the style guide and fix the issues you&apos;ve flagged, apologies.

&gt;&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:272
&gt;&gt; +        return jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(this)-&gt;scriptExecutionContext();
&gt; 
&gt; Slightly puzzled by the way this list is sorted; not quite alphabetical. Good that we put the two from &quot;normal web browsing&quot; first, I guess, for performance optimization reasons maybe?
&gt; 
&gt; Eventually we will have to change this so it walks the inheritance chain only once rather than 6 times in a row. Hoping this is not yet a performance bottleneck.

Yeah, this code doesn&apos;t seem ideal but this patch was already getting large and I didn&apos;t want to go tearing up the floorboards... perhaps I can see if there&apos;s a nice way to clean this (and below, in `scriptModuleLoader`) up in a follow-up patch?

&gt;&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:579
&gt;&gt; +JSC::JSGlobalObject* JSDOMGlobalObject::deriveShadowRealmGlobalObject(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject)
&gt; 
&gt; Irritating that this function takes JSGlobalObject and needs to &quot;know&quot; it&apos;s a JSDOMGlobalObject? I know many other functions do that too, but it’s a frustrating pattern. All those runtime checks for something that is guaranteed. But maybe there’s no simple solution because of the method table.
&gt; 
&gt; Also, why take both a vm and a globalObject? Would be nice to not take the vm unless it’s an important optimization. Eventually all the extra arguments start to make functions harder to read.

I don&apos;t think it&apos;s necessary to take `vm` as a parameter, will fix.

And yeah, unfortunately this is on the JSGlobalObject method table so unless we cook up some extra machinery it needs to stay `JSGlobalObject*`

&gt;&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:605
&gt;&gt; +        }
&gt; 
&gt; This loop looks wrong in a risky way. If the worlds are ever not equal, it becomes an infinite loop, since nothing changes doc! And this proves we don’t have extensive-enough test coverage; it might be difficult to construct a test for this, but we need one.
&gt; 
&gt; I think it would be nice if we could find a way to write it as a for loop.
&gt; 
&gt; Also the cast to JSDOMGlobalObject is safe, but why would we have to think about that here. It would be best to change the return type of globalObject in Document, or even some lower base class, so we don’t have to do the cast here.

Oof you&apos;re right; that&apos;s embarrasing :X

Will fix + try to push the type narrowing further down

&gt;&gt; LayoutTests/ChangeLog:7
&gt;&gt; +        nested, in worker contexts, or in iframes.
&gt; 
&gt; Can these tests be added to Web Platform Tests instead of WebKit-specific tests?
&gt; 
&gt; I personally find our WebKit-specific tests easier to read and maintain, but Web Platform Tests server an important additional purpose of helping us achieve interoperability between web browsers, and so they are strongly preferred.

Is both acceptable? Will be adding coverage in WPT but WebKit is the first implementer and esp. given the awkward lifetime issues I&apos;d like to include tests in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831783</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-18 13:17:50 -0800</bug_when>
    <thetext>(In reply to Joseph Griego from comment #18)
&gt; &gt; Can these tests be added to Web Platform Tests instead of WebKit-specific tests?
&gt; &gt; 
&gt; &gt; I personally find our WebKit-specific tests easier to read and maintain, but Web Platform Tests server an important additional purpose of helping us achieve interoperability between web browsers, and so they are strongly preferred.
&gt; 
&gt; Is both acceptable? Will be adding coverage in WPT but WebKit is the first
&gt; implementer and esp. given the awkward lifetime issues I&apos;d like to include
&gt; tests in this patch.

Acceptable, yes, but it kicks the can down the road. Someone is going to have to add to WPT. Please do it if you can, but if not, yes, non-WPT tests are better than nothing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832803</commentid>
    <comment_count>20</comment_count>
      <attachid>449668</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-21 10:00:09 -0800</bug_when>
    <thetext>Created attachment 449668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832814</commentid>
    <comment_count>21</comment_count>
      <attachid>449668</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-21 11:06:06 -0800</bug_when>
    <thetext>Comment on attachment 449668
Patch

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

&gt; Source/JavaScriptCore/runtime/ShadowRealmObject.cpp:65
&gt; +    JSGlobalObject* shadowRealmGlobalObject = globalObject-&gt;globalObjectMethodTable()-&gt;deriveShadowRealmGlobalObject(globalObject);
&gt; +    object-&gt;m_globalObject.set(vm, object, shadowRealmGlobalObject);

I think this would read better without the local variable; also the single line of code would be shorter than the line defining the local variable, and the words &quot;shadow realm global object&quot; are in the function name.

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:598
&gt; +        auto document = downcast&lt;Document&gt;(context);

I would write:

    auto&amp; document = downcast&lt;Document&gt;(*context);

The code above already does the null check.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:120
&gt; +    auto incubatingGlobalObject = jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(object)-&gt;incubatingRealm();
&gt; +    return incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;supportsRichSourceInfo(
&gt; +        incubatingGlobalObject
&gt; +    );

Why the vertical format? This would be fine/better on a single line.

Also, in a short function like this I suggest single word variable names. Seems that using the longer incubatingGlobalObject name is not helpful for readability.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:128
&gt; +    auto incubatingGlobalObject = jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(object)-&gt;incubatingRealm();
&gt; +    return incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;shouldInterruptScript(
&gt; +        incubatingGlobalObject
&gt; +    );

Ditto.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:136
&gt; +    auto incubatingGlobalObject = jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(object)-&gt;incubatingRealm();
&gt; +    return incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;shouldInterruptScriptBeforeTimeout(
&gt; +        incubatingGlobalObject
&gt; +    );

Ditto.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:144
&gt; +    auto incubatingGlobalObject = jsCast&lt;const JSShadowRealmGlobalScopeBase*&gt;(object)-&gt;incubatingRealm();
&gt; +    return incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;javaScriptRuntimeFlags(
&gt; +        incubatingGlobalObject
&gt; +    );

Ditto.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:152
&gt; +    auto incubatingGlobalObject = jsCast&lt;JSShadowRealmGlobalScopeBase*&gt;(globalObject)-&gt;incubatingRealm();
&gt; +    return incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;scriptExecutionStatus(
&gt; +        incubatingGlobalObject, owner
&gt; +    );

Ditto.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:160
&gt; +    auto incubatingGlobalObject = jsCast&lt;JSShadowRealmGlobalScopeBase*&gt;(globalObject)-&gt;incubatingRealm();
&gt; +    incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;reportViolationForUnsafeEval(
&gt; +        incubatingGlobalObject, msg
&gt; +    );

Ditto.

&gt; Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:168
&gt; +    auto incubatingGlobalObject = jsCast&lt;JSShadowRealmGlobalScopeBase*&gt;(&amp;object)-&gt;incubatingRealm();
&gt; +    incubatingGlobalObject-&gt;globalObjectMethodTable()-&gt;queueMicrotaskToEventLoop(
&gt; +        *incubatingGlobalObject, WTFMove(task)
&gt; +    );

Ditto.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:791
&gt; +sub CreateNeedsJSProxy

This sounds like a function that creates a &quot;needs JS proxy&quot;. That’s why we often use different wording like ShouldIncludeJSProxyAsCreateArgument, but my name isn’t perfect.

&gt; Source/WebCore/page/ShadowRealmGlobalScope.cpp:41
&gt; +RefPtr&lt;ShadowRealmGlobalScope&gt; ShadowRealmGlobalScope::tryCreate(JSDOMGlobalObject* wrapper, ScriptModuleLoader* loader)
&gt; +{
&gt; +    return adoptRef(new ShadowRealmGlobalScope(wrapper, loader));
&gt; +}

This function never returns null. Why not have a create function that returns Ref&lt;&gt; rather than a tryCreate function that returns RefPtr, that pretends it can fail, but never can?

&gt; Source/WebCore/page/ShadowRealmGlobalScope.cpp:64
&gt; +JSShadowRealmGlobalScopeBase* ShadowRealmGlobalScope::wrapper()
&gt; +{
&gt; +    return m_wrapper.get();
&gt; +}

I suggest we consider putting this inline in the header, as we did with self().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832863</commentid>
    <comment_count>22</comment_count>
      <attachid>449690</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-21 13:04:54 -0800</bug_when>
    <thetext>Created attachment 449690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832864</commentid>
    <comment_count>23</comment_count>
      <attachid>449690</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-21 13:06:43 -0800</bug_when>
    <thetext>Comment on attachment 449690
Patch

Again many thanks Darin for the review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832866</commentid>
    <comment_count>24</comment_count>
      <attachid>449690</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-21 13:08:33 -0800</bug_when>
    <thetext>Comment on attachment 449690
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:597
&gt; +        // Same-origin iframes present a difficult circumstance because the
&gt; +        // shadow realm global object cannot retain the incubating realm&apos;s
&gt; +        // global object (that would be a refcount loop); but, same-origioriginalWorld);
&gt; +        // iframes can create objects that outlive their global object.
&gt; +        //
&gt; +        // Our solution is to walk up the parent tree of documents as far as
&gt; +        // possible while still staying in the same origin to insure we don&apos;t
&gt; +        // allow the ShadowRealm to fetch modules masquerading as the wrong
&gt; +        // origin while avoiding any lifetime issues (since the topmost document
&gt; +        // with a given wrapper world should outlive other objects in that
&gt; +        // world)

Sounds good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832871</commentid>
    <comment_count>25</comment_count>
      <attachid>449691</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2022-01-21 13:20:07 -0800</bug_when>
    <thetext>Created attachment 449691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833294</commentid>
    <comment_count>26</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-24 07:22:32 -0800</bug_when>
    <thetext>jgriego@igalia.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/metadata/contributors.json.

Rejecting attachment 449691 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833299</commentid>
    <comment_count>27</comment_count>
      <attachid>449691</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-01-24 07:29:11 -0800</bug_when>
    <thetext>Comment on attachment 449691
Patch

Trying to land on behalf of joseph with R=Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833325</commentid>
    <comment_count>28</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-24 08:06:32 -0800</bug_when>
    <thetext>Committed r288442 (246331@main): &lt;https://commits.webkit.org/246331@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449691.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446750</attachid>
            <date>2021-12-10 10:24:31 -0800</date>
            <delta_ts>2021-12-10 10:32:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211210132429.patch</filename>
            <type>text/plain</type>
            <size>87493</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA5ODk4MDQwZmFmMjI0YjlhMzNmZWU3OTBiMDc2NmJlNjc2M2E1OGU4Li5iM2QyYjA0
YTZkNjM1YjA0MmEyOWI5MDc1YTk1M2FhNGVlMWQ2NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNzU4LDYgKzc1OCw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9i
amVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICBudWxscHRyLCAvLyBkZWZh
dWx0TGFuZ3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0
ciwgLy8gaW5zdGFudGluYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFs
T2JqZWN0CiB9OwogCiBHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCmluZGV4IDU5MjJkNTYyYzQ2ZjgwMGIxYWMxYWFkN2UxOGQ3N2Q5MmI0YTIx
ODcuLmQ0MzUyMjhmNTkzNDUwYmU5OTFkNjE5ZWM3ODQ4YzA4MTc5MGY2ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUzNyw2
ICs1MzcsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6
c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICBudWxscHRyLCAvLyBkZWZhdWx0TGFu
Z3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0ciwgLy8g
aW5zdGFudGlhdGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QK
IH07CiAKIC8qIFNvdXJjZSBmb3IgSlNHbG9iYWxPYmplY3QubHV0LmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDE4NGQxYzhiZmE3YThm
MGE0YWE1MDgyM2ZiYTZlM2I4MmJkMTk5YWYuLmMzMzhkN2Q5MTMyMmYzMzc1NDgyMjdlZjcxZWM3
NmNjMGU5ZjMxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtMjY0LDYgKzI2NCw5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSB7CiAKICAgICB0eXBlZGVmIEpTUHJvbWlzZSogKCpJbnN0YW50aWF0ZVN0cmVhbWluZ1B0
cikoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBKU09iamVjdCopOwogICAgIEluc3RhbnRpYXRl
U3RyZWFtaW5nUHRyIGluc3RhbnRpYXRlU3RyZWFtaW5nOworCisgICAgdHlwZWRlZiBKU0dsb2Jh
bE9iamVjdCogKCpEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyKShWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7CisgICAgRGVyaXZlU2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0ciBkZXJp
dmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdDsKIH07CiAKIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDog
cHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewpAQCAtMTA4Miw2ICsxMDg1LDExIEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3Qg
SlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICBzdGF0aWMgSlNHbG9iYWxP
YmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6
Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCBqc051bGwoKSksIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKSk7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KGNv
bnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNHbG9iYWxPYmplY3QqKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBSdW50aW1lRmxhZ3MgamF2YVNjcmlwdFJ1bnRp
bWVGbGFncyhjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIFJ1bnRpbWVGbGFncygpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxt
Q29uc3RydWN0b3IuY3BwCmluZGV4IDE2ZThhYWMzZGFmMzFjYWJmNmIxODllYWQxYjMzMTZjNGFj
MTU3ZjcuLmM4ODZiYWMwNjNiNDJjNjcyZjJmZWM5NTE4MWYxMDE3YjY2YWYxYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3Ry
dWN0b3IuY3BwCkBAIC01Myw3ICs1Myw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RXaXRoU2hhZG93UmVhbG1Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFN0cnVjdHVyZSogc2hhZG93UmVh
bG1TdHJ1Y3R1cmUgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+c2hhZG93UmVhbG1Qcm90b3R5cGUoKSk7Ci0gICAgSlNP
YmplY3QqIHNoYWRvd1JlYWxtT2JqZWN0ID0gU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0ZSh2bSwg
c2hhZG93UmVhbG1TdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKSk7CisgICAgSlNPYmplY3QqIHNoYWRvd1JlYWxtT2JqZWN0ID0gU2hhZG93UmVhbG1PYmpl
Y3Q6OmNyZWF0ZSh2bSwgc2hhZG93UmVhbG1TdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShzaGFkb3dSZWFsbU9iamVjdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcAppbmRl
eCBhMjVhNDAwODA5MzAwODFmMDA4ZTYzZTExNjlkY2Y3N2U3NDM4ZmM4Li4xYjdiZTlkYTcxN2Q1
NzYxMGY2ZWJjOTIyMDU0OTUwZGJiODg0OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCkBAIC01NywxMiArNTcsMTIgQEAg
dm9pZCBTaGFkb3dSZWFsbU9iamVjdDo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBW
aXNpdG9yJiB2aXNpdG9yKQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oU2hhZG93UmVhbG1PYmpl
Y3QpOwogCi1TaGFkb3dSZWFsbU9iamVjdCogU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0ZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSog
bWV0aG9kVGFibGUpCitTaGFkb3dSZWFsbU9iamVjdCogU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogewogICAgIFNoYWRvd1JlYWxtT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxTaGFkb3dSZWFsbU9iamVjdD4odm0pKSBTaGFkb3dSZWFsbU9iamVjdCh2bSwg
c3RydWN0dXJlKTsKICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21N
ZXRob2RUYWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxs
KCkpLCBtZXRob2RUYWJsZSk7Ci0gICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5zZXQodm0sIG9i
amVjdCwgZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0dsb2JhbE9iamVjdCogc2hhZG93UmVhbG1HbG9i
YWxPYmplY3QgPSBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPmRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QpOworICAgIG9iamVjdC0+
bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIHNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KTsK
ICAgICByZXR1cm4gb2JqZWN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaAppbmRleCBkMDg4ZmY3ODQyZTIwYWU1NDI1MmY2ZGIw
NWQ0YzdlODRmOWViMTVjLi5hZGIyZWQwMjJhMzcwYzQwMzkyNDkzN2I1YWE3YjUzYjk4ZjI3ZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2Jq
ZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0g
ICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBjb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSopOworICAgIHN0YXRpYyBTaGFkb3dSZWFsbU9iamVj
dCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNHbG9iYWxPYmplY3QqKTsKIAogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ3MzI4MzhmMjQ2ZTBiMmIxNGZkMDFhMGNkNjI0
M2UwYjYzMTE1ZDUuLjI0ZjQ0ZTZiY2IxYzcyNWEzNDQzNjk3Y2FjMDkyM2JmNDY1NjBlNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA2LDYgKzEyMDYsNyBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAogICAgIHBh
Z2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKKyAgICBw
YWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCiAgICAgcGFnZS9TaGFyZURhdGEuaWRsCiAg
ICAgcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwKICAgICBwYWdlL1VuZG9JdGVt
LmlkbApAQCAtMjA3OCw2ICsyMDc5LDcgQEAgc2V0KElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUg
JHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RPTUlzb1N1YnNwYWNlcy5oKQogc2V0KENP
TlNUUlVDVE9SU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRE9N
Q29uc3RydWN0b3JzLmgpCiBzZXQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9ET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoU0hBRE9XUkVBTE1H
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09V
UkNFU19ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNl
dChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwpCiBzZXQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJD
b3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbCkKQEAgLTIyNjIsMTIgKzIyNjQsMTMgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29y
ZUJpbmRpbmdzCiAgICAgR0VORVJBVE9SIEpTCiAgICAgU1VQUExFTUVOVEFMX0RFUEZJTEUgJHtT
VVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgIFBQX0VYVFJBX09VVFBVVAotICAgICAg
ICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxF
fSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRX0gJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KKyAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRX0gJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfSAke0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAg
IFBQX0VYVFJBX0FSR1MKICAgICAgICAgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0KICAgICAgICAgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICR7
Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfQogICAgICAgICAtLXdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgJHtXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9
CisgICAgICAgIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFE
T1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLWRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0RFRElDQVRFRFdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICR7U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2MDUxNDA1YWRhNTNmNjg1YmNkODExMjBiYTI2OTc0
MDhmNzIzODY4Li5kM2YxZWE5NWZhOTRjOWQ1NjRjMTFhM2YzNDM0ZjAyNTYyNGRkNTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNTUsNiArMTI1NSw3IEBAIEpTX0JJTkRJ
TkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRvSXRlbS5pZGwgXApAQCAtMjA3Niw2ICsyMDc3LDcg
QEAgSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSA9IERPTUlzb1N1YnNwYWNlcy5oCiBDT05TVFJV
Q1RPUlNfSEVBREVSX0ZJTEUgPSBET01Db25zdHJ1Y3RvcnMuaAogV0lORE9XX0NPTlNUUlVDVE9S
U19GSUxFID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbAogV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgPSBXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK1NIQURP
V1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmlkbAogREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFID0gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0yMDkxLDYgKzIwOTMsNyBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoQ09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFKSBcCiAgICAgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUp
IFwKICAgICAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChT
SEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKQEAgLTIxMDEsNyArMjEwNCw3IEBAIElETF9JTlRF
Uk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMp
KQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NS
SVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJF
X0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCSQoc2hlbGwgZWNobyAkKEpTX0JJ
TkRJTkdfSURMUykgfCB0ciAiICIgIlxuIiA+IElETEZpbGVOYW1lc0xpc3QudHh0KQotCSQoUEVS
TCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmlu
ZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIg
LS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0Zp
bGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQo
U1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQo
SVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1df
Q09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFyZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRh
bE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQo
RkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxG
aWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0ZpbGUgJChJ
RExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExF
TUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQoSVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09OU1RSVUNU
T1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChQQUlOVFdP
UktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1hdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQTEVNRU5UQUxfTUFLRUZJ
TEVfREVQUykKIAogIwogIyBFbWl0IHRoZSBydWxlcyB0byBnZW5lcmF0ZSBiaW5kaW5ncyBmcm9t
IElETCBmaWxlcy4gTm90ZSB0aGF0IHRoZXJlIGFyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1Nzg0Njdh
Y2FmNzAxMGZmMzY4ZTgwMGYzZDdkNzBiODIxM2JiNDMyLi44ZjUxOGU1MmQ1MDA1OWMzMWFmOGEw
NDc3YmIxZDk3ZDllMzg5OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjE1LDYgKzYxNSw3IEBAIGJp
bmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViWFJWaWV3
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTE3ODgsNiArMTc4OSw3IEBAIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKIHBhZ2UvU2VjdXJp
dHlQb2xpY3kuY3BwCiBwYWdlL1NldHRpbmdzQmFzZS5jcHAKK3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2NrZXRQcm92aWRl
ci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNTI1MTBjMzA4MThmMGNhOTE2
YTg4NDM3N2QyMjRhMWFiYTc5NWI4NS4uMDRhOWI4ZGE2MTk3ZjVmYjZmZTE4OTViMzJhNGE5ZDli
YTdkZDgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIkpTUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTUmVt
b3RlRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2lu
Y2x1ZGUgIkpTV3JpdGFibGVTdHJlYW0uaCIKQEAgLTI2Niw2ICsyNjgsOCBAQCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4odGhp
cyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNSZW1vdGVE
T01XaW5kb3dCYXNlPih2bSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlu
aGVyaXRzPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+KHZtKCkpKQorICAgICAgICByZXR1
cm4ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPih0aGlzKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmIChpbmhlcml0czxKU1dvcmtlckdsb2JhbFNj
b3BlQmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmIChp
bmhlcml0czxKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U+KHZtKCkpKQpAQCAtNTA2LDYgKzUxMCw4
IEBAIHN0YXRpYyBTY3JpcHRNb2R1bGVMb2FkZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+
bW9kdWxlTG9hZGVyKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2bSkp
CisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CiAgICAgaWYgKGds
b2JhbE9iamVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlPih2bSkpCkBAIC01NzAsNiArNTc2LDI5IEBAIEpTQzo6SlNPYmplY3Qq
IEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cyhKU0M6OkpTCiAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+
dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwogfQog
CitKU0M6OkpTR2xvYmFsT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVh
bG1HbG9iYWxPYmplY3QoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3sKKyAgICBhdXRvIGRvbUdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlQoZG9tR2xvYmFsT2JqZWN0KTsKKyAg
ICBhdXRvIHNjb3BlID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKAorICAgICAg
ICB2bSwKKyAgICAgICAgZG9tR2xvYmFsT2JqZWN0LAorICAgICAgICBzY3JpcHRNb2R1bGVMb2Fk
ZXIoZG9tR2xvYmFsT2JqZWN0KQorICAgICkucmVsZWFzZU5vbk51bGwoKTsKKworICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkpOworICAgIGF1dG8gcHJveHlTdHJ1Y3R1cmUg
PSBKU1Byb3h5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkpOwor
ICAgIGF1dG8gcHJveHkgPSBKU1Byb3h5OjpjcmVhdGUodm0sIHByb3h5U3RydWN0dXJlKTsKKyAg
ICBhdXRvIHdyYXBwZXIgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZSh2bSwgc3Ry
dWN0dXJlLCBXVEZNb3ZlKHNjb3BlKSwgcHJveHkpOworCisgICAgd3JhcHBlci0+c2V0UHJvdG90
eXBlRGlyZWN0KHZtLCB3cmFwcGVyLT5vYmplY3RQcm90b3R5cGUoKSk7CisgICAgcHJveHktPnNl
dFRhcmdldCh2bSwgd3JhcHBlcik7CisKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKworCiBKU0RP
TUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQogewogICAgIGlmIChpczxEb2N1bWVu
dD4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaAppbmRleCBmNGQ4NjVkOWEwMzI3YjhhZDk0ZjdiMGRmOTNjZmMwZDU3Y2U4YjU4Li4y
Mjc5MmEwOWFhMGIwMWZhMDk2YmFiYmFjM2I1N2I4YjY5YTE2ZDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTM5LDYgKzM5LDcgQEAg
Y2xhc3MgRE9NR3VhcmRlZE9iamVjdDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRE9NV3JhcHBlcldv
cmxkOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxv
YWRlcjsKIAogdXNpbmcgSlNET01TdHJ1Y3R1cmVNYXAgPSBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xh
c3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1cmU+PjsKIHVzaW5nIERPTUd1
YXJkZWRPYmplY3RTZXQgPSBIYXNoU2V0PERPTUd1YXJkZWRPYmplY3QqPjsKQEAgLTg2LDYgKzg3
LDcgQEAgcHVibGljOgogICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50
ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQog
CiAgICAgc3RhdGljIHZvaWQgcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcChKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhjZXB0aW9uKik7CisgICAgc3RhdGljIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAKICAgICB2b2lkIGNsZWFyRE9NR3VhcmRlZE9iamVjdHMoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5k
ZXggZjg5MWU3NmU4NjVjNmIxZmE1YzMzYmE0NTM4YTEyOTg2NmY4MzQyMS4uOWIyYjdlZDRmMDRh
ZDFlMDY0NWY4OGM4YTJiNmYzMmY1N2U0ZTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC05NSw2ICs5NSw3IEBAIGNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSA9IHsKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICAmZGVyaXZl
U2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5k
b3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+JiYg
d2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGFiM2ZhYzY3MTMwNGY4
YzdiY2E1OTAzMDMyZWQ2YzYwYmRjMWZhNGIuLmE0ZDcxNWY3MDhjNjBjMDI4NjU3OWNmMTU5MDM1
NzcwMGI3ZDU0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVt
b3RlRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZW1vdGVET01XaW5kb3dCYXNlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBjb25zdCBHbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSBKU1JlbW90ZURPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgPQogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8v
IGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZwor
ICAgIG51bGxwdHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiBKU1Jl
bW90ZURPTVdpbmRvd0Jhc2U6OkpTUmVtb3RlRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBSZWZQdHI8UmVtb3RlRE9NV2luZG93PiYmIHdpbmRvdywgSlNXaW5kb3dQ
cm94eSogcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzZmExYWYzNmY1
NWRkYWMxMDFkOTVmNDAxZDgyNDQzNDNmMWJiMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAt
MCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5oIgorCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiSlNNaWNy
b3Rhc2tDYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgor
I2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU1Byb3h5Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWljcm90YXNr
Lmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgbmFtZXNwYWNlIEpTQzsKKworY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OnNfaW5mbyA9IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmSlNET01H
bG9iYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKSB9OworCitjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0geworICAgICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLAorICAgICZzaG91bGRJ
bnRlcnJ1cHRTY3JpcHQsCisgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCisgICAgJnF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AsCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQsCisgICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVy
UmVzb2x2ZSwKKyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0
ZUltcG9ydE1ldGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKKyAgICAm
cHJvbWlzZVJlamVjdGlvblRyYWNrZXIsCisgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRF
dmVudExvb3AsCisgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKKyAgICAmc2NyaXB0
RXhlY3V0aW9uU3RhdHVzLAorICAgICZyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsLAorICAg
IFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKKyAgICAmY29tcGlsZVN0cmVhbWluZywKKyAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCisj
ZWxzZQorICAgIG51bGxwdHIsCisgICAgbnVsbHB0ciwKKyNlbmRpZgorICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdCwKK307CisKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6
OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwpCisgICAg
OiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCBub3JtYWxXb3JsZCh2bSksICZzX2ds
b2JhbE9iamVjdE1ldGhvZFRhYmxlKQorICAgICwgbV93cmFwcGVkKFdURk1vdmUoaW1wbCkpCit7
Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3sKKyAgICBtX3Byb3h5LnNldCh2bSwgdGhpcywgcHJv
eHkpOworICAgIG1fd3JhcHBlZC0+bV93cmFwcGVyID0gSlNDOjpXZWFrKHRoaXMpOworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtLCBtX3Byb3h5LmdldCgpKTsKKyAgICBBU1NFUlQoaW5oZXJp
dHModm0sIGluZm8oKSkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgordm9pZCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNl
bGwsIFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oY2Vs
bCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwor
ICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRv
ci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm94eSk7Cit9CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBpbmN1YmF0aW5nKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKK30KKworY29uc3QgSlNET01HbG9iYWxPYmplY3QqIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OmluY3ViYXRpbmcoKSBjb25zdAoreworICAgIHJldHVybiBtX3dyYXBwZWQtPm1f
aW5jdWJhdGluZ1dyYXBwZXIuZ2V0KCk7Cit9CisKK0RFRklORV9WSVNJVF9DSElMRFJFTihKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKTsKKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBzdGF0aWNfY2FzdDxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oY2VsbCktPkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKCk7Cit9CisKK2Jvb2wgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2Jh
bE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJu
IG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c3VwcG9ydHNSaWNoU291cmNlSW5mbyhv
YmopOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNob3VsZEludGVy
cnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2Jq
ID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5p
bmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
c2hvdWxkSW50ZXJydXB0U2NyaXB0KG9iaik7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0ds
b2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0
dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50ZXJydXB0U2NyaXB0
QmVmb3JlVGltZW91dChvYmopOworfQorCitSdW50aW1lRmxhZ3MgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6amF2YVNjcmlwdFJ1bnRpbWVGbGFncyhjb25zdCBKU0dsb2JhbE9iamVjdCog
b2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+amF2YVNjcmlwdFJ1bnRpbWVGbGFncyhvYmopOworfQor
CitKU0M6OlNjcmlwdEV4ZWN1dGlvblN0YXR1cyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
OjpzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTT2JqZWN0KiBvd25lcikKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJhdGluZygpOworICAg
IHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnNjcmlwdEV4ZWN1dGlvblN0
YXR1cyhvYmosIG93bmVyKTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
OjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIG9iai0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+cmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChvYmopOworfQor
Cit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVu
dExvb3AoSlNHbG9iYWxPYmplY3QmIG9iamVjdCwgUmVmPEpTQzo6TWljcm90YXNrPiYmIHRhc2sp
Cit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+
KCZvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5xdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wKCpvYmosIFdURk1vdmUodGFzaykpOworfQor
CitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9N
R2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9iYWxTY29wZSkK
K3sKKyAgICByZXR1cm4gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCByZWFsbUdsb2JhbFNjb3Bl
KTsKK30KKworSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSYgcmVhbG1HbG9iYWxTY29wZSkKK3sKKyAgICBBU1NFUlQocmVhbG1HbG9iYWxTY29wZS53
cmFwcGVyKCkpOworICAgIHJldHVybiAmcmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCktPnByb3h5
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OWMwYTY0ZDZiMjZjNmU3ZWJhYzA3NmVjYWRhMWNkZDhhMzUwZWFjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTUdsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOworCitjbGFzcyBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNET01HbG9iYWxPYmplY3Q7CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KKyAgICBzdGF0aWMgdm9pZCBzdWJzcGFj
ZUZvcihKU0M6OlZNJikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICBz
dGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisK
KyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gKm1f
d3JhcHBlZDsgfQorCisgICAgY29uc3QgSlNET01HbG9iYWxPYmplY3QqIGluY3ViYXRpbmcoKSBj
b25zdDsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGluZygpCisgICAgeworICAgICAg
ICByZXR1cm4gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnN0X2Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KHRoaXMpLT5pbmN1YmF0aW5nKCkpOworICAg
IH0KKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdDsKKworICAgIHN0YXRpYyBjb25zdCBKU0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAg
IHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBKU0M6OlJ1bnRpbWVGbGFncyBqYXZhU2Ny
aXB0UnVudGltZUZsYWdzKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMg
SlNDOjpTY3JpcHRFeGVjdXRpb25TdGF0dXMgc2NyaXB0RXhlY3V0aW9uU3RhdHVzKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgcXVldWVNaWNy
b3Rhc2tUb0V2ZW50TG9vcChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmPEpTQzo6TWljcm90YXNr
PiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGU+JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQ
cm94eSopOworCisgICAgREVDTEFSRV9WSVNJVF9DSElMRFJFTjsKKworcHJpdmF0ZToKKyAgICBS
ZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gbV93cmFwcGVkOworfTsKKworLy8gUmV0dXJu
cyBhIEpTV29ya2VyR2xvYmFsU2NvcGUgb3IganNOdWxsKCkKKy8vIEFsd2F5cyBpZ25vcmVzIHRo
ZSBleGVjU3RhdGUgYW5kIHBhc3NlZCBnbG9iYWxPYmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUgaXMgaXRzZWxmIGEgZ2xvYmFsT2JqZWN0IGFuZCB3aWxsIGFsd2F5cyB1c2UgaXRzIG93biBw
cm90b3R5cGUgY2hhaW4uCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7CitpbmxpbmUgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSog
c2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsICpzY29wZSkgOiBKU0M6OmpzTnVsbCgpOyB9CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYpOworaW5saW5lIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUqIHNjb3BlKSB7IHJldHVybiBzY29wZSA/IHRvSlMobGV4aWNh
bEdsb2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDUzOWFhMWRjMTJhZmNmZDRiMWVlNDZkM2VmZDE0
NmMzYzg0MDMzNDEuLjBjNTQ3MjE3NGQyZjhkNGI1OGMyNTU3MGY4YjM5NTdjZTdhM2NhMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAg
ICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUds
b2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRy
PFdvcmtlckdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzZGM1NDljMTAz
OTVkYjlhODU3OWFlYmNhODU0NmViZThjY2JhYTJjLi43ZjRiOTYzYzE5OGQ3OGFhZGRkYjkyOWU1
YzBiODFiYTMzMmU0N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmwKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAg
ICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2xldEdsb2JhbFNj
b3BlQmFzZTo6SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2xldEdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRl
eCBhZDkzY2UwOTAyYzU3YjA1NTQ4NGJiNTQzNDQxNzM4OTMyZDQ2YmEzLi5lZTNiNTM4ZDc5MTNk
ZDc2NmY1ZTZiMjYyYzcyNDczM2I2ZDhhZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUludGVncml0eS5oIgogI2luY2x1
ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaCIKQEAgLTc0LDYgKzc1LDEzIEBAIFNjcmlwdE1vZHVsZUxvYWRlcjo6flNjcmlwdE1v
ZHVsZUxvYWRlcigpCiAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKIH0KIAorc3RkOjp1
bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gU2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dS
ZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiByZWFsbUdsb2JhbCkgY29uc3QKK3sKKyAg
ICBhdXRvIGxvYWRlciA9IFdURjo6bWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KG1fY29u
dGV4dCwgbV9vd25lclR5cGUpOworICAgIGxvYWRlci0+bV9zaGFkb3dSZWFsbUdsb2JhbCA9IHJl
YWxtR2xvYmFsOworICAgIHJldHVybiBsb2FkZXI7Cit9CisKIHN0YXRpYyBib29sIGlzUm9vdE1v
ZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiB7CiAgICAgcmV0dXJuIGltcG9y
dGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQo
KTsKQEAgLTI0NCw3ICsyNTIsOSBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIGlmICgh
c291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3Io
anNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iX3Mp
OwogCi0gICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICBp
ZiAobV9zaGFkb3dSZWFsbUdsb2JhbCkgeworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUobV9zaGFkb3dSZWFsbUdsb2JhbCwgYXdhaXRlZFZh
bHVlLCByZXN1bWVNb2RlKSk7CisgICAgfSBlbHNlIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5
cGU6OkRvY3VtZW50KSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PERvY3Vt
ZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVS
ZWNvcmQsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9kZSkpOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4IGU4MmE4
YmI0MzM3MWVhNmNhYjhmY2ZhODQyNGQ4N2ViM2M5ODYzMTguLjM5YzhkZDVhNTFkMGRhOTVmMjM3
NTU5YmU5ZjBkMzFlZTJkYzM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlw
ZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFNj
cmlwdE1vZHVsZUxvYWRlcj4gc2hhZG93UmVhbG1Mb2FkZXIoSlNDOjpKU0dsb2JhbE9iamVjdCog
cmVhbG1HbG9iYWwpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVyIHJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcik7CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxT
dHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKICAgICBIYXNoU2V0PFJl
ZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAgICAgT3duZXJUeXBlIG1fb3duZXJU
eXBlOworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIG1fc2hhZG93UmVhbG1HbG9iYWwgeyBudWxs
cHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDZkNDZiMTU0MzU2
MTY1MjQ1MDE3OWIwNzQ3Y2RiODc0YjJlZGVkNzEuLjQ5YjAyYmYwZTc2MDMwYjA2ZmQ1OWE3NmZl
NTYwNTQ3MWEyZjZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTUmVtb3RlRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
LmgiCiAjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFs
U2NvcGUuaCIKQEAgLTY4LDYgKzY5LDcgQEAgSlNWTUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRh
KFZNJiB2bSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3coSlNDOjpJ
c29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNSZW1vdGVET01XaW5kb3c+KCkpCiAgICAgLCBtX2hlYXBD
ZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8
SlNXb3JrZXJHbG9iYWxTY29wZT4oKSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNTaGFyZWRX
b3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlPigpKQorICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlPigpKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVhcENlbGxUeXBl
Rm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4MDM2NmEwYzdmNzIy
MDIzZjc5MzgxNGFmNmVhNTcxMWRhOTg0Nzc3Li4zN2M5YTFlNjY0ZGY4NWZiYmRlNjMzMTY5MTE0
OGM3YzYyNjY4N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIEpTQzo6SXNv
SGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3c7CiAgICAgSlND
OjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtlckdsb2JhbFNjb3BlOwog
ICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNTaGFyZWRXb3JrZXJH
bG9iYWxTY29wZTsKKyAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAg
SlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxYTcyYjU0YjdhZmIzMDc5YzU1MDA3YTY4YzA4ODJj
MjQyYTg5NThjLi45NzEzNTEyN2FlMWZlZDgwMTIzYmI2Y2RkYWZhNjgyZGI5MzQxMTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtNzYwLDcgKzc2MCw3IEBAIHN1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQogc3ViIElzRE9N
R2xvYmFsT2JqZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIHJldHVybiAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2UtPnR5cGUt
Pm5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikgfHwg
JGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiVGVzdEdsb2JhbE9iamVjdCI7CisgICAgcmV0dXJu
ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJ
bnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0
b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSB8
fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKIH0KIAogc3ViIFNo
b3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQpAQCAtNzc1LDYgKzc3NSwxMyBAQCBzdWIgU2hv
dWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCiAgICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0
KCRpbnRlcmZhY2UpOwogfQogCitzdWIgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUK
K3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gJGludGVyZmFjZS0+
aXNOYW1lc3BhY2VPYmplY3QoKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIjsKK30KKwogc3ViIEdlbmVyYXRlSW5kZXhlZEdldHRlcgogewogICAg
IG15ICgkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgJGluZGV4RXhwcmVzc2lv
bikgPSBAXzsKQEAgLTI4NzEsNyArMjg3OCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBw
cm94eSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50
ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2Jh
bFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNs
YXNzTmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWY8JGltcGxUeXBlPiYmIGltcGwsIEpTQzo6SlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9j
YXRlQ2VsbDwkY2xhc3NOYW1lPih2bSkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJlLCBXVEZN
b3ZlKGltcGwpKTtcbiIpOwpAQCAtMjkxMyw3ICsyOTIwLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEpTQzo6
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSJ9ID0gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IjsKICAgICAgICAgCiAgICAgIyBQcm90b3R5cGUKLSAgICB1bmxlc3MgKFNob3Vs
ZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5pc05h
bWVzcGFjZU9iamVjdCkgeworICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90
eXBlKCRpbnRlcmZhY2UpIHx8IFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtc
biIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG4iKTsKICAgICB9
CkBAIC0zMTcwLDcgKzMxNzcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIENvbnN0cnVj
dG9yCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VO
YW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8JGltcGxUeXBl
PiYmLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFs
U2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUds
b2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFj
ZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJm
YWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwg
UmVmPCRpbXBsVHlwZT4mJik7XG4iKTsKICAgICB9IGVsc2lmICghTmVlZHNJbXBsZW1lbnRhdGlv
bkNsYXNzKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
JGNsYXNzTmFtZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG5cbiIpOwpA
QCAtMzE4MCw3ICszMTg3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZU5hbWUgZXEgIlJlbW90ZURPTVdp
bmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29k
ZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNj
b3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJX
b3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZh
Y2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTQzo6SlNQcm94eSopO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTtcbiIpOwpAQCAt
Mzk1OSw2ICszOTY2LDggQEAgc3ViIEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3Ry
aW5nRm9yRXhwb3NlZAogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pc0RvY3VtZW50KCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAiV29ya2Vy
IikgewogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5p
c1dvcmtlckdsb2JhbFNjb3BlKCkiKTsKKyAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAiU2hhZG93
UmVhbG0iKSB7CisgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIik7CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQg
ZXEgIldvcmtsZXQiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzV29ya2xldEdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3Nl
ZCBlcSAiQXVkaW9Xb3JrbGV0IikgewpAQCAtNDQ5OCw3ICs0NTA3LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgJGhhc2hTaXplKys7CiAgICAgfQogCi0gICAgaWYgKCEk
aW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNlT3JkaW5h
cnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgbXkgJGp1c3RHZW5lcmF0
ZVZhbHVlQXJyYXkgPSAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiAKICAgICAgICAg
JG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwgJGhhc2hOYW1lLCAkaGFzaFNp
emUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVl
MiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRl
VmFsdWVBcnJheSk7CkBAIC00NTExLDcgKzQ1MjAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7XG4iKTsKICAgICB9CiAKLSAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlU
YWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkgJiYgISRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKFByb3RvdHlwZUhhc1N0YXRp
Y1Byb3BlcnR5VGFibGUoJGludGVyZmFjZSkgJiYgIUlzR2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZh
Y2UpICYmICFTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0s
ICR7Y2xhc3NOYW1lfTo6aW5mbygpLCAke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZVZhbHVlcywg
KnRoaXMpO1xuIik7CiAKICAgICAgICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcyA9IEBy
dW50aW1lRW5hYmxlZE9wZXJhdGlvbnM7CkBAIC00NTkyLDcgKzQ2MDEsNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogCiAgICAgYXNzZXJ0KCJKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VU
X1RSQU5TSVRJT04oKSByZXF1aXJlcyBzdHJpbmdzIHR3byBvciBtb3JlIGNoYXJhY3RlcnMgbG9u
ZyIpIGlmIGxlbmd0aCgkdmlzaWJsZUludGVyZmFjZU5hbWUpIDwgMjsKIAotICAgIGlmICghJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoIVNob3VsZFVzZU9yZGluYXJ5
T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpO1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CkBAIC00NjI0LDcgKzQ2MzMs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSwg
cHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9i
YWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJm
YWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRl
cmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIEFkZElu
Y2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlSW5JbXBsKCRpbnRlcmZhY2VOYW1lKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJl
LCBXVEZNb3ZlKGltcGwpKVxuIik7CkBAIC00NjQ1LDcgKzQ2NTQsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05h
bWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTV2luZG93UHJveHkqIHByb3h5KVxuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7XG5cbiIpOwotICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGlu
dGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFj
ZU5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29w
ZSIpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7CkBAIC00NzQ1LDcgKzQ3NTQsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHZtLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQod3JhcHBlZCgpLm1lbW9yeUNvc3Qo
KSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1l
bW9yeUNvc3R9OwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAgIHVubGVz
cyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZh
Y2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmpl
Y3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5
cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCog
JHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CkBAIC03NTA3LDcgKzc1MTYsNyBA
QCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkb3V0cHV0QXJy
YXksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0gQF87CiAKLSAgICByZXR1cm4gaWYgJGludGVy
ZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisgICAgcmV0dXJuIGlmIFNob3VsZFVzZU9yZGluYXJ5
T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgJHByb3RvdHlwZUNsYXNzTmFt
ZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCkBAIC03NzgzLDcgKzc3OTIsNyBAQCBzdWIg
R2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoISRnZW5lcmF0aW5nTGVn
YWN5RmFjdG9yeUZ1bmN0aW9uIGFuZCAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CiAgICAgICAg
IG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+cGFyZW50VHlwZS0+bmFt
ZTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke3BhcmVudENsYXNz
TmFtZX06OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTtcbiIpOwotICAgIH0gZWxz
aWYgKCRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgfSBlbHNpZiAoU2hvdWxk
VXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJv
dG90eXBlKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9w
cmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNWI4OTMxM2ZlNWNhZWZiODkxMmZiNDM2ZjE0NzY4MmYw
NDc1NzdiYS4uNzQxYTU4YjE5ZjEyOGRlNGYwOWIxY2I1NjZjZjUxYTkxZWQ3ZjhiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwK
QEAgLTQ0LDYgKzQ0LDcgQEAgbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CiBteSAkY29uc3Ry
dWN0b3JzSGVhZGVyRmlsZTsKIG15ICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZTsKIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsK
IG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CkBAIC02NSw3ICs2
Niw4IEBAIG15IEBzdXBwb3J0ZWRHbG9iYWxDb250ZXh0cyA9ICgKICAgICAiRGVkaWNhdGVkV29y
a2VyIiwKICAgICAiU2VydmljZVdvcmtlciIsCiAgICAgIlBhaW50V29ya2xldCIsCi0gICAgIkF1
ZGlvV29ya2xldCIKKyAgICAiQXVkaW9Xb3JrbGV0IiwKKyAgICAiU2hhZG93UmVhbG0iLAogKTsK
IAogIyBUb2dnbGUgdGhpcyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBmYXN0IHJlZ3VsYXIgZXhwcmVz
c2lvbiBiYXNlZCAicGFyc2luZyIgdXNlZApAQCAtODIsNiArODQsNyBAQCBHZXRPcHRpb25zKCdk
ZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ2NvbnN0cnVjdG9yc0hlYWRlckZp
bGU9cycgPT4gXCRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlLAogICAgICAgICAgICAnd2luZG93Q29u
c3RydWN0b3JzRmlsZT1zJyA9PiBcJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAg
ICd3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdzaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAnZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlPXMnID0+IFwkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
LAogICAgICAgICAgICAnc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1z
JyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAg
ICAgICdzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCkBAIC05OCw2ICsxMDEsNyBAQCBk
aWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3JvcyB1c2luZyAtLWRlZmluZXMuJykgdW5sZXNz
IGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNp
bmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3aW5kb3dD
b25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5n
IC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNpZnkgYW4g
b3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1kZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lm
eSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1z
aGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xMTMsNiArMTE3
LDcgQEAgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpOwogJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUpOwogJHdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKTsKICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2lu
UGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTE1
NCw2ICsxNTksNyBAQCBteSAlZGljdGlvbmFyeURlcGVuZGVuY2llczsKIG15ICVzdXBwbGVtZW50
YWxzOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgPSAiIjsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
PSAiIjsKQEAgLTI3Miw2ICsyNzgsOCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBr
ZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICAgICAgICAgICAgICAgICAkd2luZG93Q29uc3RydWN0
b3JzQ29kZSAuPSAkd2luZG93QWxpYXNlcyBpZiAkd2luZG93QWxpYXNlczsKICAgICAgICAgICAg
IH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJXb3JrZXIiKSB7CiAgICAgICAgICAgICAgICAg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKKyAg
ICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTaGFkb3dSZWFsbSIpIHsKKyAg
ICAgICAgICAgICAgICAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0g
JGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAi
RGVkaWNhdGVkV29ya2VyIikgewogICAgICAgICAgICAgICAgICRkZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9
IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2VydmljZVdvcmtlciIpIHsKQEAgLTMwMyw2ICsz
MTEsNyBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxlTmFtZUhh
c2gpIHsKICMgR2VuZXJhdGUgcGFydGlhbCBpbnRlcmZhY2VzIGZvciBDb25zdHJ1Y3RvcnMuCiBH
ZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRPTVdpbmRvdyIsICR3aW5kb3dDb25zdHJ1Y3RvcnND
b2RlLCAkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2Uo
Ildvcmtlckdsb2JhbFNjb3BlIiwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7
CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwg
JGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGRlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlIiwg
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYXJlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg2YjE1NzUyY2JjOTFiMmQ4ZjBh
YzE2MzRlOThjYjQ2ZmRhNTdlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bApAQCAtMCwwICsxLDMgQEAKK3BhcnRpYWwgaW50ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUgeworICAgIGF0dHJpYnV0ZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IgU2hh
ZG93UmVhbG1HbG9iYWxTY29wZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVw
CmluZGV4IGMxMjMyMTUyNDYxYTZjMmVkMmU1NDgwYTJlN2M2ZGI2ODg0YmE0NjMuLmQ2NjMwNzlj
OTEzN2M5NzFmMjVhMmVmZWUyNTE3YmUzZWMyZWRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBl
bmRlbmNpZXMuZGVwCkBAIC0zMDgsNiArMzA4LDggQEAgV2ViRE9NVGVzdFR5cGVkZWZzLmg6CiBK
U1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oOiAKIERPTVRlc3RWb2lkQ2FsbGJhY2tGdW5jdGlv
bi5oOiAKIFdlYkRPTVRlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oOiAKK0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGw6CiBKU1dvcmtlckdsb2JhbFNjb3Bl
Lmg6IFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NV29ya2VyR2xvYmFsU2Nv
cGUuaDogV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01Xb3JrZXJHbG9i
YWxTY29wZS5oOiBXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9taXNlUmVqZWN0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Byb21pc2VSZWplY3Rpb25FdmVudC5pZGwKaW5kZXggMGEwOTViY2M2ZjRkYWEx
M2NmYzMwMWQwNGYxNWZmMDc5N2Y2Y2ExMy4uNDBjZmMzZDA0OGVjYjFmMDgwYjk1ZGYyMDQ0OTAz
ZjRmYjEzYmRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb21pc2VSZWplY3Rp
b25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb21pc2VSZWplY3Rpb25FdmVu
dC5pZGwKQEAgLTI0LDcgKzI0LDcgQEAKICovCiAKIFsKLSAgICBFeHBvc2VkPShXaW5kb3csV29y
a2VyKSwKKyAgICBFeHBvc2VkPSosCiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiBdIGludGVy
ZmFjZSBQcm9taXNlUmVqZWN0aW9uRXZlbnQgOiBFdmVudCB7CiAgICAgY29uc3RydWN0b3IoRE9N
U3RyaW5nIHR5cGUsIFByb21pc2VSZWplY3Rpb25FdmVudEluaXQgZXZlbnRJbml0RGljdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzNTMzYzIw
ZTJlZTU3OTYwYjU0YmZlMTUzNmRlM2ZiMmY4Y2NhMTg2Li4yYWFiN2I2MjU5ZTdmMTI5M2E4MDFm
OGIzMGUyOThkMjJlYzdjYzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKQEAgLTk0LDYgKzk0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGlzRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1dvcmtlckdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KQEAgLTMxMiw2ICszMTMsNyBAQCBwcml2YXRlOgogICAgIC8vIENhbGxlcnMg
c2hvdWxkIHRyeSB0byBjcmVhdGUgdGhlIENvbnNvbGVNZXNzYWdlIHRoZW1zZWx2ZXMuCiAgICAg
dmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENh
bGxTdGFjaz4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRp
b25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rv
cjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSA9IDA7CisKICAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVu
dChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hlZFNj
cmlwdCopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZGNlZjMzZWRjOTE0OTcxNGU4MzZlZGNkZjUxMDc3ZTQ1NzI1N2RlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1
ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxv
YWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUpOworCitSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gU2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6dHJ5Q3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogd3JhcHBl
ciwgU2NyaXB0TW9kdWxlTG9hZGVyKiBsb2FkZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKHZtLCB3cmFwcGVyLCBsb2FkZXIpKTsKK30KKworU2hh
ZG93UmVhbG1HbG9iYWxTY29wZTo6U2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0M6OlZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QqIHdyYXBwZXIsIFNjcmlwdE1vZHVsZUxvYWRlciogbG9hZGVyKQor
ICAgIDogbV92bSgmdm0pCisgICAgLCBtX2luY3ViYXRpbmdXcmFwcGVyKHZtLCB3cmFwcGVyKQor
ICAgICwgbV9wYXJlbnRMb2FkZXIobG9hZGVyKQoreyB9CisKK1NjcmlwdE1vZHVsZUxvYWRlciYg
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKCkKK3sKKyAgICBpZiAobV9tb2R1
bGVMb2FkZXIpCisgICAgICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7CisKKyAgICBhdXRvIHdy
YXBwZXIgPSBtX3dyYXBwZXIuZ2V0KCk7CisgICAgQVNTRVJUKHdyYXBwZXIpOworCisgICAgbV9t
b2R1bGVMb2FkZXIgPSBtX3BhcmVudExvYWRlci0+c2hhZG93UmVhbG1Mb2FkZXIod3JhcHBlcik7
CisgICAgcmV0dXJuICptX21vZHVsZUxvYWRlcjsKK30KKworSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZSogU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6d3JhcHBlcigpCit7CisgICAgcmV0dXJu
IG1fd3JhcHBlci5nZXQoKTsKK30KKworU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6flNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUoKSB7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzM5ZDAx
MDUwY2I0OGU1MmMwN2Y5OTU1MjFiNzdiMzVmODY3ZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKQEAgLTAsMCArMSw2OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1dlYWsuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgSlNDIHsgY2xhc3MgVk07IH0KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7
CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworCitjbGFzcyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8U2hh
ZG93UmVhbG1HbG9iYWxTY29wZT4geworICAgIGZyaWVuZCBjbGFzcyBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlOworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2hhZG93UmVhbG1HbG9i
YWxTY29wZSk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGU+IHRyeUNyZWF0ZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqLCBTY3JpcHRNb2R1
bGVMb2FkZXIqKTsKKyAgICB+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworCisgICAgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSYgc2VsZigpIHsgcmV0dXJuICp0aGlzOyB9CisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKTsKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKiB3cmFwcGVyKCk7CisKK3Byb3RlY3RlZDoKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCosIFNjcmlwdE1vZHVsZUxvYWRlciopOworCitw
cml2YXRlOgorICAgIFJlZlB0cjxKU0M6OlZNPiBtX3ZtOworICAgIEpTQzo6U3Ryb25nPEpTRE9N
R2xvYmFsT2JqZWN0PiBtX2luY3ViYXRpbmdXcmFwcGVyOworICAgIFNjcmlwdE1vZHVsZUxvYWRl
ciogbV9wYXJlbnRMb2FkZXI7CisgICAgSlNDOjpXZWFrPEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U+IG1fd3JhcHBlciB7IH07CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxv
YWRlcj4gbV9tb2R1bGVMb2FkZXIgeyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjQwNmZkNGMzODVkZjZhOTEzMWIzN2FiOTgyOTEwNmEzMmRmYzAwMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwK
QEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisKK1sKKyAgICBFeHBvc2VkPVNoYWRvd1JlYWxtLAorICAgIEpTTGVnYWN5UGFy
ZW50PUpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UsCisgICAgR2xvYmFsPVNoYWRvd1JlYWxt
LAorICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAorXSBpbnRlcmZhY2UgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
IHNlbGY7Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDhlMTQ1NzBjYTEwYWI1OGQwMDFlMzM5NzZkNzBjNTVlYWE0ODRhN2IuLjZkMTIwMjdk
Mzc1MjBiZWIyYjYyMmFiOTVkY2JlZTg2OTVhNWFkOWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMi0xMCAg
Sm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJl
YWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRW
YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0
MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAgICAgIChCaW5kaW5nc1Rlc3Rz
LmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAgICAgICAgKEJpbmRpbmdzVGVz
dHMubWFpbik6CisKIDIwMjEtMTItMDggIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0
b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0
YWIgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdz
L21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKaW5kZXgg
MDIyZDA5ZTg2OTMxMWYwMDQ0MzQwOTY5Y2EzNDk4NWNiNzIwZWE1Ny4uY2U4YjUwNjMxMGYxOTdk
MjUzYTViNTE4NTlmMTdkNmUzMTlkNWE3YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGlu
Z3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAg
ICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQog
Ci0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2Rp
cmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2Vm
aWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0
ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAgIGRlZiBnZW5lcmF0ZV9zdXBw
bGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdp
bmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAg
ICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKICAgICAgICAgZm9yIGlu
cHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJlY3RvcnkpOgogICAgICAgICAgICAgKG5h
bWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X2ZpbGUpCkBAIC05NCw2ICs5
NCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAnLS1zdXBwbGVtZW50
YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLAog
ICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3RydWN0b3JzRmlsZScsIHdpbmRvd19jb25zdHJ1
Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZScsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAorICAgICAgICAg
ICAgICAgJy0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzaGFkb3dy
ZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgZGVkaWNhdGVkd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1zZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2VydmljZXdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tc2hhcmVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsCkBAIC0xOTksNiArMjAwLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAg
ICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZW5hbWUgPSAnU3VwcGxl
bWVudGFsRGVwZW5kZW5jaWVzLmRlcCcKICAgICAgICAgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUgPSAnRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbCcKKyAgICAgICAgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUgPSAnU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAg
ICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHNlcnZp
Y2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCcKQEAgLTIxMyw2ICsyMTUsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgog
ICAgICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlID0gb3MucGF0aC5q
b2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9k
aXJlY3RvcnksIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGVuYW1lKQogICAg
ICAgICB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3Rv
cnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgZG9tX3dp
bmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxm
LnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5y
ZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzaGFkb3dyZWFsbWdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90
IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgZGVkaWNhdGVkd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBzZXJ2aWNld29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3Rv
cnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2Vydmlj
ZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgc2hhcmVk
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19k
aXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwg
c2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQpAQCAtMjIxLDcg
KzIyNCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIGF1ZGlvd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlm
IG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5v
dCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBw
bGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19j
b25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRl
ZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBh
aW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShp
bnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRh
bF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJl
ZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgICAgIHByaW50KCdGYWlsZWQgdG8g
Z2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlLicpCiAgICAgICAgICAgICBz
aHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAgICAgICAgICAgcmV0dXJuIC0xCkBAIC0y
MzMsNiArMjM2LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICBhbGxf
dGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hh
bmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCB3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFs
bF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9j
aGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNo
YWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKKyAgICAgICAgICAg
ICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0
X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0
b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgog
ICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYg
c2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBp
bnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDIxMGE1Y2UxZThiMDM2NGUwNmE0NmMzZDQzOWNhNWQwOTNmMWY5OTMu
LmRjODNlMGFkOTllMGFmNjdiNDFjMDJmN2I3YTJmYTc2OGQwNmU4NDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4K
KworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9y
IHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgSW1wcm92ZSB0ZXN0IGNvdmVyYWdl
IGEgYml0IGZvciBzaGFkb3cgcmVhbG1zLCBlc3BlY2lhbGx5IHJ1bm5pbmcgbmVzdGVkIG9yIGlu
IHdvcmtlciBjb250ZXh0cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9T
aGFkb3dSZWFsbS13b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3Rz
L1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydF9jbG9zZWRf
b3BlbmVyKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0KToKKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanM6IEFkZGVkLgorICAgICAgICAo
d3JhcHBlZExvZyk6CisgICAgICAgIChwcm9taXNlX3Rlc3QuYXN5bmMgdCk6CisgICAgICAgICog
anMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9kdWxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGNoZWNr
KToKKyAgICAgICAgKGxvZ19lcXVhbCk6CisgICAgICAgIChjaGVja19uZXN0ZWQpOgorICAgICAg
ICAoc2V0VmFsdWUpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zaGFkb3ctcmVhbG0td29y
a2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydF9lcXVhbHMpOgorICAgICAgICAoYXN5bmMg
dGVzdCk6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisKIDIwMjEtMTItMDkgIE1hdHQgV29vZHJv
dyAgPG1hdHQud29vZHJvd0BnbWFpbC5jb20+CiAKICAgICAgICAgVW5wcmVmaXggLXdlYmtpdC1t
YXNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjY5ODA0OTczZmRlYWFjY2ZiNGRhMzNiNjNmZGI5MzgyNWNmNzUxZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZp
b3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworCitQQVNTIHdpbmRvdy5jbG9zZSgpIGFmZmVjdHMgbmFtZSB0YXJnZXRp
bmcgaW1tZWRpYXRlbHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0t
ZXZhbHVhdGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTk2YWFlMWRhZDU4YzBhMDc4Y2UwZDA3YmEyOTRjNmIwNzM5YmMzOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwK
QEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1Jl
YWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmMg
PS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjID0uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjE0YzU1NWE4MDhiN2IyZmZiN2ZjNjE3OWY3MDc0NzQ4
NTc5YjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1w
b3J0VmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTog
NDIKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3Rv
dHlwZS5pbXBvcnRWYWx1ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworc2hhZG93
UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBjb3JyZWN0IGdsb2JhbDog
T0sKK3NoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZhbCB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBP
SworCitQQVNTIGNhbiBpbXBvcnQgbW9kdWxlIGluIGEgc2hhZG93IHJlYWxtCitQQVNTIGNhbiBu
ZXN0IHJlYWxtcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBv
cnRWYWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMGQ5NzJiZjY5YzIxMjZiMDVlNWFjNDkxMWQzNmQxNWFjN2Y0NThmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUu
aHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hh
ZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmMg
PS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk2MzdiOWM1ZGMwMTAwNGU1NDA0ZjkwOTVlZmUwNDdhMjI3
ODA2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyB0aGF0IFNoYWRvdyBS
ZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRlIHdvcmtlciBj
b250ZXh0cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2Vy
OiBzY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtlci5qcworUEFTUyBbV29ya2VyXSBpbXBv
cnQtdmFsdWUKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBjYWxsaW5nIG5lc3RlZCByZWFsbSB3cmFw
cGVyIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitbV29ya2VyXSBzaGFkb3dSZWFsbTogbmVzdGVk
IHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKK1BBU1MgW1dvcmtlcl0gbmVzdGVk
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTNhYzY0N2FiNTQ1
OTg3YmE2ZTg1ZDAxZDEyMDM4Y2YyMTk1ZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IFNoYWRvdyBSZWFsbSBBUElzIGFy
ZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRlIHdvcmtlciBjb250ZXh0cyIpOwor
ICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RhcnRXb3JrZXIoInNjcmlwdC10ZXN0cy9zaGFkb3ct
cmVhbG0td29ya2VyLmpzIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZDQ5M2ZkZjA3NmU5ODQwYzFi
ZmQ3Mzg0NmVkZDZhZTEyNmI1MjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvU2hhZG93UmVhbG0tZXZhbHVhdGUuanMKQEAgLTAsMCArMSwyMyBAQAorZGVz
Y3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxt
LnByb3RvdHlwZS5ldmFsdWF0ZSIpOworCitmdW5jdGlvbiBhc3NlcnRfY2xvc2VkX29wZW5lcih3
LCBjbG9zZWQsIG9wZW5lcikgeworICBhc3NlcnRfZXF1YWxzKHcuY2xvc2VkLCBjbG9zZWQpOwor
ICBhc3NlcnRfZXF1YWxzKHcub3BlbmVyLCBvcGVuZXIpOworfQorCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IG9wZW5lZSA9IHdpbmRvdy5vcGVuKCIiLCAiZ3JlYXRuYW1lIik7
CisgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKworICAvLyBz
ZXR1cCByZWFsbSBuZXN0ZWQgaW4gb3V0ZXJTaGFkb3dSZWFsbQorICBvdXRlclNoYWRvd1JlYWxt
LmV2YWx1YXRlKCJ2YXIgaW5uZXJSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOyIpOworICBvdXRl
clNoYWRvd1JlYWxtLmV2YWx1YXRlKCJ2YXIgY2FsbEluSW5uZXIgPSBpbm5lclJlYWxtLmV2YWx1
YXRlKFwiKGNiKSA9PiBjYigpXCIpOyIpOworCisgIGNvbnN0IGNhbGxJbk5lc3RlZFJlYWxtID0g
b3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgiKGNiKSA9PiBjYWxsSW5Jbm5lcihjYikiKTsKKwor
ICAvLyBjYWxsIGNsb3NlIHdpbmRvdyB0d28gbGV2ZWxzIGRlZXAKKyAgYXNzZXJ0X2Nsb3NlZF9v
cGVuZXIob3BlbmVlLCBmYWxzZSwgc2VsZik7CisgIGNhbGxJbk5lc3RlZFJlYWxtKCgpID0+IG9w
ZW5lZS5jbG9zZSgpKTsKKyAgLy8gb3BlbmVlLmNsb3NlKCkKKyAgYXNzZXJ0X2Nsb3NlZF9vcGVu
ZXIob3BlbmVlLCB0cnVlLCBzZWxmKTsKK30sICJ3aW5kb3cuY2xvc2UoKSBhZmZlY3RzIG5hbWUg
dGFyZ2V0aW5nIGltbWVkaWF0ZWx5Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE1ZmUzZTIx
OTdmYWI4NWJlZGY3NmE3MGFhZTgwZGRiNzZlMzA3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcwpAQCAtMCww
ICsxLDMyIEBACitkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIg
b2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmltcG9ydFZhbHVlIik7CisKK2Z1bmN0aW9uIHdyYXBw
ZWRMb2cocHJlZml4KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpIHsKKyAgICAgICAgZGVi
dWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAgfTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7Cisg
IGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4
YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrIik7CisgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFw
cGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisKKyAgY29uc3Qgb3VyTW9kdWxlID0gYXdh
aXQgaW1wb3J0KCIuL2V4YW1wbGUtbW9kdWxlLmpzIik7CisgIGFzc2VydF9lcXVhbHMob3VyTW9k
dWxlLnZhbHVlLCB0cnVlLCAiYmxvb3AiKTsKKyAgb3VyTW9kdWxlLnNldFZhbHVlKDQyKTsKKyAg
YXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKworICBjb25zdCBpbXBvcnRlZFZh
bCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUu
anMiLCAidmFsdWUiKTsKKyAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbCwgdHJ1ZSk7CisgIGNv
bnN0IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVl
KCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInNldFZhbHVlIik7CisgIHNldFZhbHVlSW1wb3J0ZWQo
MTAwKTsKKyAgY29uc3QgaW1wb3J0ZWRWYWwyID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBv
cnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1ZSIpOworICBhc3NlcnRfZXF1YWxz
KGltcG9ydGVkVmFsMiwgMTAwKTsKKyAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQy
KTsKK30sICJjYW4gaW1wb3J0IG1vZHVsZSBpbiBhIHNoYWRvdyByZWFsbSIpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFk
b3dSZWFsbSgpOworICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmlt
cG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrX25lc3RlZCIpOworICAgIGFz
c2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7Cit9
LCAiY2FuIG5lc3QgcmVhbG1zIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMvZXhhbXBsZS1tb2R1bGUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZXhh
bXBsZS1tb2R1bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMyZWJjN2E1MDMwZWQ4MDQwMTAzMmIwODM5NTI5
MzQ5ZTUyOGJlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9leGFtcGxlLW1vZHVsZS5qcwpAQCAtMCwwICsxLDMyIEBACit2YXIgdmFsdWUgPSB0cnVlOwor
Cit2YXIgY2hlY2sgPSBmdW5jdGlvbihsb2cpIHsKKyAgICBpZiAoT2JqZWN0LmdldFByb3RvdHlw
ZU9mKGdsb2JhbFRoaXMpICE9PSBPYmplY3QucHJvdG90eXBlKSB7CisgICAgICAgIGxvZygiZ2xv
YmFsVGhpcyBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZSIpOworICAgICAgICBsb2coT2Jq
ZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBsb2dfZXF1
YWwobG9nLCBtc2csIHgsIHkpIHsKKyAgICBjb25zdCByZXN1bHQgPSB4ID09IHk7CisgICAgbG9n
KGAke21zZ306ICR7cmVzdWx0ID8gJ09LJyA6ICdGQUlMRUQnfWApOworfQorCit2YXIgY2hlY2tf
bmVzdGVkID0gZnVuY3Rpb24obG9nKSB7CisgICAgY29uc3Qgc3IgPSBuZXcgU2hhZG93UmVhbG0o
KTsKKyAgICBnbG9iYWxUaGlzLnggPSAxMDA7CisgICAgc3IuZXZhbHVhdGUoYGdsb2JhbFRoaXMu
eCA9IDQyYCk7CisgICAgY29uc3QgZiA9IHNyLmV2YWx1YXRlKGAoKSA9PiB7cmV0dXJuIGdsb2Jh
bFRoaXMueDt9YCk7CisgICAgbG9nX2VxdWFsKGxvZywgImNhbGxpbmcgbmVzdGVkIHJlYWxtIHdy
YXBwZXIgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBmKCkpOworICAgIGxvZ19lcXVhbChsb2cs
ICJuZXN0ZWQgcmVhbG0gZXZhbCB1c2VzIGNvcnJlY3QgZ2xvYmFsIiwgNDIsIHNyLmV2YWx1YXRl
KGBnbG9iYWxUaGlzLnhgKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZhciBzZXRWYWx1ZSA9
IGZ1bmN0aW9uIChuZXdWYWx1ZSkgeworICAgIGNvbnNvbGUubG9nKG5ld1ZhbHVlKTsKKyAgICB2
YWx1ZSA9IG5ld1ZhbHVlOworfQorCitleHBvcnQgeyB2YWx1ZSwgc2V0VmFsdWUsIGNoZWNrLCBj
aGVja19uZXN0ZWQgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9z
aGFkb3ctcmVhbG0td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3NoYWRv
dy1yZWFsbS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWExM2U1MGUxYWQxYzFjNDNjMjdhMDEwMDNk
Zjk5ZTRkZjQ3ZTM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCkBAIC0wLDAgKzEsNTEgQEAKK2ltcG9ydFNjcmlw
dHMoIi4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyIpOworCitmdW5jdGlvbiBhc3NlcnRf
ZXF1YWxzKHgsIHkpIHsKKyAgICBpZiAoeCA9PT0geSkgcmV0dXJuOworICAgIHRocm93IG5ldyBF
cnJvcihgYXNzZXJ0aW9uIGZhaWx1cmU6IGV4cGVjdGVkICR7eH0sIGdvdCAke3l9YCk7Cit9CisK
K2Z1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uIChtc2cp
IHsKKyAgICAgICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAgfTsKK30KKworCith
c3luYyBmdW5jdGlvbiB0ZXN0KGtleSwgZikgeworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IGYo
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoa2V5ICsgZS50b1N0cmlu
ZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0UGFzc2VkKGtleSk7Cit9CisK
Kyhhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgYXdhaXQgdGVzdCgiaW1wb3J0LXZhbHVlIiwgYXN5
bmMgKCkgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1Jl
YWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmlt
cG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisKKyAg
ICAgICAgY29uc3Qgb3VyTW9kdWxlID0gYXdhaXQgaW1wb3J0KCIuL2V4YW1wbGUtbW9kdWxlLmpz
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCB0cnVlLCAiYmxvb3Ai
KTsKKyAgICAgICAgb3VyTW9kdWxlLnNldFZhbHVlKDQyKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKworICAgICAgICBjb25zdCBpbXBvcnRlZFZhbCA9IGF3
YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAi
dmFsdWUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbCwgdHJ1ZSk7CisgICAg
ICAgIGNvbnN0IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9y
dFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInNldFZhbHVlIik7CisgICAgICAgIHNldFZh
bHVlSW1wb3J0ZWQoMTAwKTsKKyAgICAgICAgY29uc3QgaW1wb3J0ZWRWYWwyID0gYXdhaXQgb3V0
ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1ZSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsMiwgMTAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKyAgICB9KTsKKworICAgIGF3YWl0IHRl
c3QoIm5lc3RlZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFs
bSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0
ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJjaGVja19u
ZXN0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRv
d1JlYWxtIikpLCB0cnVlKTsKKyAgICB9KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446754</attachid>
            <date>2021-12-10 10:32:58 -0800</date>
            <delta_ts>2021-12-10 12:48:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211210133257.patch</filename>
            <type>text/plain</type>
            <size>86970</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA5ODk4MDQwZmFmMjI0YjlhMzNmZWU3OTBiMDc2NmJlNjc2M2E1OGU4Li5iM2QyYjA0
YTZkNjM1YjA0MmEyOWI5MDc1YTk1M2FhNGVlMWQ2NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNzU4LDYgKzc1OCw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9i
amVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICBudWxscHRyLCAvLyBkZWZh
dWx0TGFuZ3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0
ciwgLy8gaW5zdGFudGluYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFs
T2JqZWN0CiB9OwogCiBHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCmluZGV4IDU5MjJkNTYyYzQ2ZjgwMGIxYWMxYWFkN2UxOGQ3N2Q5MmI0YTIx
ODcuLmQ0MzUyMjhmNTkzNDUwYmU5OTFkNjE5ZWM3ODQ4YzA4MTc5MGY2ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUzNyw2
ICs1MzcsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6
c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICBudWxscHRyLCAvLyBkZWZhdWx0TGFu
Z3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0ciwgLy8g
aW5zdGFudGlhdGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QK
IH07CiAKIC8qIFNvdXJjZSBmb3IgSlNHbG9iYWxPYmplY3QubHV0LmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDE4NGQxYzhiZmE3YThm
MGE0YWE1MDgyM2ZiYTZlM2I4MmJkMTk5YWYuLmMzMzhkN2Q5MTMyMmYzMzc1NDgyMjdlZjcxZWM3
NmNjMGU5ZjMxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtMjY0LDYgKzI2NCw5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSB7CiAKICAgICB0eXBlZGVmIEpTUHJvbWlzZSogKCpJbnN0YW50aWF0ZVN0cmVhbWluZ1B0
cikoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBKU09iamVjdCopOwogICAgIEluc3RhbnRpYXRl
U3RyZWFtaW5nUHRyIGluc3RhbnRpYXRlU3RyZWFtaW5nOworCisgICAgdHlwZWRlZiBKU0dsb2Jh
bE9iamVjdCogKCpEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyKShWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7CisgICAgRGVyaXZlU2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0ciBkZXJp
dmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdDsKIH07CiAKIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDog
cHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewpAQCAtMTA4Miw2ICsxMDg1LDExIEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3Qg
SlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICBzdGF0aWMgSlNHbG9iYWxP
YmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6
Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCBqc051bGwoKSksIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKSk7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KGNv
bnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNHbG9iYWxPYmplY3QqKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBSdW50aW1lRmxhZ3MgamF2YVNjcmlwdFJ1bnRp
bWVGbGFncyhjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIFJ1bnRpbWVGbGFncygpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxt
Q29uc3RydWN0b3IuY3BwCmluZGV4IDE2ZThhYWMzZGFmMzFjYWJmNmIxODllYWQxYjMzMTZjNGFj
MTU3ZjcuLmM4ODZiYWMwNjNiNDJjNjcyZjJmZWM5NTE4MWYxMDE3YjY2YWYxYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3Ry
dWN0b3IuY3BwCkBAIC01Myw3ICs1Myw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RXaXRoU2hhZG93UmVhbG1Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFN0cnVjdHVyZSogc2hhZG93UmVh
bG1TdHJ1Y3R1cmUgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+c2hhZG93UmVhbG1Qcm90b3R5cGUoKSk7Ci0gICAgSlNP
YmplY3QqIHNoYWRvd1JlYWxtT2JqZWN0ID0gU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0ZSh2bSwg
c2hhZG93UmVhbG1TdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKSk7CisgICAgSlNPYmplY3QqIHNoYWRvd1JlYWxtT2JqZWN0ID0gU2hhZG93UmVhbG1PYmpl
Y3Q6OmNyZWF0ZSh2bSwgc2hhZG93UmVhbG1TdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShzaGFkb3dSZWFsbU9iamVjdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcAppbmRl
eCBhMjVhNDAwODA5MzAwODFmMDA4ZTYzZTExNjlkY2Y3N2U3NDM4ZmM4Li4xYjdiZTlkYTcxN2Q1
NzYxMGY2ZWJjOTIyMDU0OTUwZGJiODg0OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCkBAIC01NywxMiArNTcsMTIgQEAg
dm9pZCBTaGFkb3dSZWFsbU9iamVjdDo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBW
aXNpdG9yJiB2aXNpdG9yKQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oU2hhZG93UmVhbG1PYmpl
Y3QpOwogCi1TaGFkb3dSZWFsbU9iamVjdCogU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0ZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSog
bWV0aG9kVGFibGUpCitTaGFkb3dSZWFsbU9iamVjdCogU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogewogICAgIFNoYWRvd1JlYWxtT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxTaGFkb3dSZWFsbU9iamVjdD4odm0pKSBTaGFkb3dSZWFsbU9iamVjdCh2bSwg
c3RydWN0dXJlKTsKICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21N
ZXRob2RUYWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxs
KCkpLCBtZXRob2RUYWJsZSk7Ci0gICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5zZXQodm0sIG9i
amVjdCwgZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0dsb2JhbE9iamVjdCogc2hhZG93UmVhbG1HbG9i
YWxPYmplY3QgPSBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPmRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QpOworICAgIG9iamVjdC0+
bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIHNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KTsK
ICAgICByZXR1cm4gb2JqZWN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaAppbmRleCBkMDg4ZmY3ODQyZTIwYWU1NDI1MmY2ZGIw
NWQ0YzdlODRmOWViMTVjLi5hZGIyZWQwMjJhMzcwYzQwMzkyNDkzN2I1YWE3YjUzYjk4ZjI3ZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2Jq
ZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0g
ICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBjb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSopOworICAgIHN0YXRpYyBTaGFkb3dSZWFsbU9iamVj
dCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNHbG9iYWxPYmplY3QqKTsKIAogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ3MzI4MzhmMjQ2ZTBiMmIxNGZkMDFhMGNkNjI0
M2UwYjYzMTE1ZDUuLjI0ZjQ0ZTZiY2IxYzcyNWEzNDQzNjk3Y2FjMDkyM2JmNDY1NjBlNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA2LDYgKzEyMDYsNyBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAogICAgIHBh
Z2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKKyAgICBw
YWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCiAgICAgcGFnZS9TaGFyZURhdGEuaWRsCiAg
ICAgcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwKICAgICBwYWdlL1VuZG9JdGVt
LmlkbApAQCAtMjA3OCw2ICsyMDc5LDcgQEAgc2V0KElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUg
JHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RPTUlzb1N1YnNwYWNlcy5oKQogc2V0KENP
TlNUUlVDVE9SU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRE9N
Q29uc3RydWN0b3JzLmgpCiBzZXQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9ET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoU0hBRE9XUkVBTE1H
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09V
UkNFU19ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNl
dChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwpCiBzZXQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJD
b3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbCkKQEAgLTIyNjIsMTIgKzIyNjQsMTMgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29y
ZUJpbmRpbmdzCiAgICAgR0VORVJBVE9SIEpTCiAgICAgU1VQUExFTUVOVEFMX0RFUEZJTEUgJHtT
VVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgIFBQX0VYVFJBX09VVFBVVAotICAgICAg
ICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxF
fSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRX0gJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KKyAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRX0gJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfSAke0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAg
IFBQX0VYVFJBX0FSR1MKICAgICAgICAgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0KICAgICAgICAgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICR7
Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfQogICAgICAgICAtLXdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgJHtXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9
CisgICAgICAgIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFE
T1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLWRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0RFRElDQVRFRFdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICR7U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2MDUxNDA1YWRhNTNmNjg1YmNkODExMjBiYTI2OTc0
MDhmNzIzODY4Li5kM2YxZWE5NWZhOTRjOWQ1NjRjMTFhM2YzNDM0ZjAyNTYyNGRkNTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNTUsNiArMTI1NSw3IEBAIEpTX0JJTkRJ
TkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRvSXRlbS5pZGwgXApAQCAtMjA3Niw2ICsyMDc3LDcg
QEAgSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSA9IERPTUlzb1N1YnNwYWNlcy5oCiBDT05TVFJV
Q1RPUlNfSEVBREVSX0ZJTEUgPSBET01Db25zdHJ1Y3RvcnMuaAogV0lORE9XX0NPTlNUUlVDVE9S
U19GSUxFID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbAogV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgPSBXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK1NIQURP
V1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmlkbAogREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFID0gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0yMDkxLDYgKzIwOTMsNyBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoQ09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFKSBcCiAgICAgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUp
IFwKICAgICAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChT
SEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKQEAgLTIxMDEsNyArMjEwNCw3IEBAIElETF9JTlRF
Uk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMp
KQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NS
SVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJF
X0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCSQoc2hlbGwgZWNobyAkKEpTX0JJ
TkRJTkdfSURMUykgfCB0ciAiICIgIlxuIiA+IElETEZpbGVOYW1lc0xpc3QudHh0KQotCSQoUEVS
TCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmlu
ZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIg
LS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0Zp
bGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQo
U1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQo
SVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1df
Q09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFyZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRh
bE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQo
RkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxG
aWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0ZpbGUgJChJ
RExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExF
TUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQoSVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09OU1RSVUNU
T1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChQQUlOVFdP
UktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1hdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQTEVNRU5UQUxfTUFLRUZJ
TEVfREVQUykKIAogIwogIyBFbWl0IHRoZSBydWxlcyB0byBnZW5lcmF0ZSBiaW5kaW5ncyBmcm9t
IElETCBmaWxlcy4gTm90ZSB0aGF0IHRoZXJlIGFyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1Nzg0Njdh
Y2FmNzAxMGZmMzY4ZTgwMGYzZDdkNzBiODIxM2JiNDMyLi44ZjUxOGU1MmQ1MDA1OWMzMWFmOGEw
NDc3YmIxZDk3ZDllMzg5OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjE1LDYgKzYxNSw3IEBAIGJp
bmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViWFJWaWV3
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTE3ODgsNiArMTc4OSw3IEBAIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKIHBhZ2UvU2VjdXJp
dHlQb2xpY3kuY3BwCiBwYWdlL1NldHRpbmdzQmFzZS5jcHAKK3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2NrZXRQcm92aWRl
ci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNTI1MTBjMzA4MThmMGNhOTE2
YTg4NDM3N2QyMjRhMWFiYTc5NWI4NS4uMDRhOWI4ZGE2MTk3ZjVmYjZmZTE4OTViMzJhNGE5ZDli
YTdkZDgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIkpTUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTUmVt
b3RlRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2lu
Y2x1ZGUgIkpTV3JpdGFibGVTdHJlYW0uaCIKQEAgLTI2Niw2ICsyNjgsOCBAQCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4odGhp
cyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNSZW1vdGVE
T01XaW5kb3dCYXNlPih2bSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlu
aGVyaXRzPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+KHZtKCkpKQorICAgICAgICByZXR1
cm4ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPih0aGlzKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmIChpbmhlcml0czxKU1dvcmtlckdsb2JhbFNj
b3BlQmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmIChp
bmhlcml0czxKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U+KHZtKCkpKQpAQCAtNTA2LDYgKzUxMCw4
IEBAIHN0YXRpYyBTY3JpcHRNb2R1bGVMb2FkZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+
bW9kdWxlTG9hZGVyKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2bSkp
CisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CiAgICAgaWYgKGds
b2JhbE9iamVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlPih2bSkpCkBAIC01NzAsNiArNTc2LDI5IEBAIEpTQzo6SlNPYmplY3Qq
IEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cyhKU0M6OkpTCiAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+
dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwogfQog
CitKU0M6OkpTR2xvYmFsT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVh
bG1HbG9iYWxPYmplY3QoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3sKKyAgICBhdXRvIGRvbUdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlQoZG9tR2xvYmFsT2JqZWN0KTsKKyAg
ICBhdXRvIHNjb3BlID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKAorICAgICAg
ICB2bSwKKyAgICAgICAgZG9tR2xvYmFsT2JqZWN0LAorICAgICAgICBzY3JpcHRNb2R1bGVMb2Fk
ZXIoZG9tR2xvYmFsT2JqZWN0KQorICAgICkucmVsZWFzZU5vbk51bGwoKTsKKworICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkpOworICAgIGF1dG8gcHJveHlTdHJ1Y3R1cmUg
PSBKU1Byb3h5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkpOwor
ICAgIGF1dG8gcHJveHkgPSBKU1Byb3h5OjpjcmVhdGUodm0sIHByb3h5U3RydWN0dXJlKTsKKyAg
ICBhdXRvIHdyYXBwZXIgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZSh2bSwgc3Ry
dWN0dXJlLCBXVEZNb3ZlKHNjb3BlKSwgcHJveHkpOworCisgICAgd3JhcHBlci0+c2V0UHJvdG90
eXBlRGlyZWN0KHZtLCB3cmFwcGVyLT5vYmplY3RQcm90b3R5cGUoKSk7CisgICAgcHJveHktPnNl
dFRhcmdldCh2bSwgd3JhcHBlcik7CisKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKworCiBKU0RP
TUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQogewogICAgIGlmIChpczxEb2N1bWVu
dD4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaAppbmRleCBmNGQ4NjVkOWEwMzI3YjhhZDk0ZjdiMGRmOTNjZmMwZDU3Y2U4YjU4Li4y
Mjc5MmEwOWFhMGIwMWZhMDk2YmFiYmFjM2I1N2I4YjY5YTE2ZDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTM5LDYgKzM5LDcgQEAg
Y2xhc3MgRE9NR3VhcmRlZE9iamVjdDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRE9NV3JhcHBlcldv
cmxkOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxv
YWRlcjsKIAogdXNpbmcgSlNET01TdHJ1Y3R1cmVNYXAgPSBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xh
c3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1cmU+PjsKIHVzaW5nIERPTUd1
YXJkZWRPYmplY3RTZXQgPSBIYXNoU2V0PERPTUd1YXJkZWRPYmplY3QqPjsKQEAgLTg2LDYgKzg3
LDcgQEAgcHVibGljOgogICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50
ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQog
CiAgICAgc3RhdGljIHZvaWQgcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcChKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhjZXB0aW9uKik7CisgICAgc3RhdGljIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAKICAgICB2b2lkIGNsZWFyRE9NR3VhcmRlZE9iamVjdHMoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5k
ZXggZjg5MWU3NmU4NjVjNmIxZmE1YzMzYmE0NTM4YTEyOTg2NmY4MzQyMS4uOWIyYjdlZDRmMDRh
ZDFlMDY0NWY4OGM4YTJiNmYzMmY1N2U0ZTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC05NSw2ICs5NSw3IEBAIGNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSA9IHsKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICAmZGVyaXZl
U2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5k
b3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+JiYg
d2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGFiM2ZhYzY3MTMwNGY4
YzdiY2E1OTAzMDMyZWQ2YzYwYmRjMWZhNGIuLmE0ZDcxNWY3MDhjNjBjMDI4NjU3OWNmMTU5MDM1
NzcwMGI3ZDU0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVt
b3RlRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZW1vdGVET01XaW5kb3dCYXNlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBjb25zdCBHbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSBKU1JlbW90ZURPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgPQogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8v
IGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZwor
ICAgIG51bGxwdHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiBKU1Jl
bW90ZURPTVdpbmRvd0Jhc2U6OkpTUmVtb3RlRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBSZWZQdHI8UmVtb3RlRE9NV2luZG93PiYmIHdpbmRvdywgSlNXaW5kb3dQ
cm94eSogcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzZmExYWYzNmY1
NWRkYWMxMDFkOTVmNDAxZDgyNDQzNDNmMWJiMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAt
MCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5oIgorCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiSlNNaWNy
b3Rhc2tDYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgor
I2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU1Byb3h5Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWljcm90YXNr
Lmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgbmFtZXNwYWNlIEpTQzsKKworY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OnNfaW5mbyA9IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmSlNET01H
bG9iYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKSB9OworCitjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0geworICAgICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLAorICAgICZzaG91bGRJ
bnRlcnJ1cHRTY3JpcHQsCisgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCisgICAgJnF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AsCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQsCisgICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVy
UmVzb2x2ZSwKKyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0
ZUltcG9ydE1ldGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKKyAgICAm
cHJvbWlzZVJlamVjdGlvblRyYWNrZXIsCisgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRF
dmVudExvb3AsCisgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKKyAgICAmc2NyaXB0
RXhlY3V0aW9uU3RhdHVzLAorICAgICZyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsLAorICAg
IFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKKyAgICAmY29tcGlsZVN0cmVhbWluZywKKyAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCisj
ZWxzZQorICAgIG51bGxwdHIsCisgICAgbnVsbHB0ciwKKyNlbmRpZgorICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdCwKK307CisKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6
OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwpCisgICAg
OiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCBub3JtYWxXb3JsZCh2bSksICZzX2ds
b2JhbE9iamVjdE1ldGhvZFRhYmxlKQorICAgICwgbV93cmFwcGVkKFdURk1vdmUoaW1wbCkpCit7
Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3sKKyAgICBtX3Byb3h5LnNldCh2bSwgdGhpcywgcHJv
eHkpOworICAgIG1fd3JhcHBlZC0+bV93cmFwcGVyID0gSlNDOjpXZWFrKHRoaXMpOworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtLCBtX3Byb3h5LmdldCgpKTsKKyAgICBBU1NFUlQoaW5oZXJp
dHModm0sIGluZm8oKSkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgordm9pZCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNl
bGwsIFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oY2Vs
bCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwor
ICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRv
ci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm94eSk7Cit9CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBpbmN1YmF0aW5nKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKK30KKworY29uc3QgSlNET01HbG9iYWxPYmplY3QqIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OmluY3ViYXRpbmcoKSBjb25zdAoreworICAgIHJldHVybiBtX3dyYXBwZWQtPm1f
aW5jdWJhdGluZ1dyYXBwZXIuZ2V0KCk7Cit9CisKK0RFRklORV9WSVNJVF9DSElMRFJFTihKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKTsKKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBzdGF0aWNfY2FzdDxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oY2VsbCktPkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKCk7Cit9CisKK2Jvb2wgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2Jh
bE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJu
IG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c3VwcG9ydHNSaWNoU291cmNlSW5mbyhv
YmopOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNob3VsZEludGVy
cnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2Jq
ID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5p
bmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
c2hvdWxkSW50ZXJydXB0U2NyaXB0KG9iaik7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0ds
b2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0
dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50ZXJydXB0U2NyaXB0
QmVmb3JlVGltZW91dChvYmopOworfQorCitSdW50aW1lRmxhZ3MgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6amF2YVNjcmlwdFJ1bnRpbWVGbGFncyhjb25zdCBKU0dsb2JhbE9iamVjdCog
b2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+amF2YVNjcmlwdFJ1bnRpbWVGbGFncyhvYmopOworfQor
CitKU0M6OlNjcmlwdEV4ZWN1dGlvblN0YXR1cyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
OjpzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTT2JqZWN0KiBvd25lcikKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJhdGluZygpOworICAg
IHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnNjcmlwdEV4ZWN1dGlvblN0
YXR1cyhvYmosIG93bmVyKTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
OjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIG9iai0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+cmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChvYmopOworfQor
Cit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVu
dExvb3AoSlNHbG9iYWxPYmplY3QmIG9iamVjdCwgUmVmPEpTQzo6TWljcm90YXNrPiYmIHRhc2sp
Cit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+
KCZvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5xdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wKCpvYmosIFdURk1vdmUodGFzaykpOworfQor
CitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9N
R2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9iYWxTY29wZSkK
K3sKKyAgICByZXR1cm4gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCByZWFsbUdsb2JhbFNjb3Bl
KTsKK30KKworSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSYgcmVhbG1HbG9iYWxTY29wZSkKK3sKKyAgICBBU1NFUlQocmVhbG1HbG9iYWxTY29wZS53
cmFwcGVyKCkpOworICAgIHJldHVybiAmcmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCktPnByb3h5
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OWMwYTY0ZDZiMjZjNmU3ZWJhYzA3NmVjYWRhMWNkZDhhMzUwZWFjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTUdsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOworCitjbGFzcyBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNET01HbG9iYWxPYmplY3Q7CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KKyAgICBzdGF0aWMgdm9pZCBzdWJzcGFj
ZUZvcihKU0M6OlZNJikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICBz
dGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisK
KyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gKm1f
d3JhcHBlZDsgfQorCisgICAgY29uc3QgSlNET01HbG9iYWxPYmplY3QqIGluY3ViYXRpbmcoKSBj
b25zdDsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGluZygpCisgICAgeworICAgICAg
ICByZXR1cm4gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnN0X2Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KHRoaXMpLT5pbmN1YmF0aW5nKCkpOworICAg
IH0KKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdDsKKworICAgIHN0YXRpYyBjb25zdCBKU0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAg
IHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBKU0M6OlJ1bnRpbWVGbGFncyBqYXZhU2Ny
aXB0UnVudGltZUZsYWdzKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMg
SlNDOjpTY3JpcHRFeGVjdXRpb25TdGF0dXMgc2NyaXB0RXhlY3V0aW9uU3RhdHVzKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgcXVldWVNaWNy
b3Rhc2tUb0V2ZW50TG9vcChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmPEpTQzo6TWljcm90YXNr
PiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGU+JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQ
cm94eSopOworCisgICAgREVDTEFSRV9WSVNJVF9DSElMRFJFTjsKKworcHJpdmF0ZToKKyAgICBS
ZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gbV93cmFwcGVkOworfTsKKworLy8gUmV0dXJu
cyBhIEpTV29ya2VyR2xvYmFsU2NvcGUgb3IganNOdWxsKCkKKy8vIEFsd2F5cyBpZ25vcmVzIHRo
ZSBleGVjU3RhdGUgYW5kIHBhc3NlZCBnbG9iYWxPYmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUgaXMgaXRzZWxmIGEgZ2xvYmFsT2JqZWN0IGFuZCB3aWxsIGFsd2F5cyB1c2UgaXRzIG93biBw
cm90b3R5cGUgY2hhaW4uCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7CitpbmxpbmUgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSog
c2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsICpzY29wZSkgOiBKU0M6OmpzTnVsbCgpOyB9CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYpOworaW5saW5lIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUqIHNjb3BlKSB7IHJldHVybiBzY29wZSA/IHRvSlMobGV4aWNh
bEdsb2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDUzOWFhMWRjMTJhZmNmZDRiMWVlNDZkM2VmZDE0
NmMzYzg0MDMzNDEuLjBjNTQ3MjE3NGQyZjhkNGI1OGMyNTU3MGY4YjM5NTdjZTdhM2NhMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAg
ICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUds
b2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRy
PFdvcmtlckdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzZGM1NDljMTAz
OTVkYjlhODU3OWFlYmNhODU0NmViZThjY2JhYTJjLi43ZjRiOTYzYzE5OGQ3OGFhZGRkYjkyOWU1
YzBiODFiYTMzMmU0N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmwKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAg
ICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2xldEdsb2JhbFNj
b3BlQmFzZTo6SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2xldEdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRl
eCBhZDkzY2UwOTAyYzU3YjA1NTQ4NGJiNTQzNDQxNzM4OTMyZDQ2YmEzLi5lZTNiNTM4ZDc5MTNk
ZDc2NmY1ZTZiMjYyYzcyNDczM2I2ZDhhZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUludGVncml0eS5oIgogI2luY2x1
ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaCIKQEAgLTc0LDYgKzc1LDEzIEBAIFNjcmlwdE1vZHVsZUxvYWRlcjo6flNjcmlwdE1v
ZHVsZUxvYWRlcigpCiAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKIH0KIAorc3RkOjp1
bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gU2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dS
ZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiByZWFsbUdsb2JhbCkgY29uc3QKK3sKKyAg
ICBhdXRvIGxvYWRlciA9IFdURjo6bWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KG1fY29u
dGV4dCwgbV9vd25lclR5cGUpOworICAgIGxvYWRlci0+bV9zaGFkb3dSZWFsbUdsb2JhbCA9IHJl
YWxtR2xvYmFsOworICAgIHJldHVybiBsb2FkZXI7Cit9CisKIHN0YXRpYyBib29sIGlzUm9vdE1v
ZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiB7CiAgICAgcmV0dXJuIGltcG9y
dGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQo
KTsKQEAgLTI0NCw3ICsyNTIsOSBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIGlmICgh
c291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3Io
anNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iX3Mp
OwogCi0gICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICBp
ZiAobV9zaGFkb3dSZWFsbUdsb2JhbCkgeworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUobV9zaGFkb3dSZWFsbUdsb2JhbCwgYXdhaXRlZFZh
bHVlLCByZXN1bWVNb2RlKSk7CisgICAgfSBlbHNlIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5
cGU6OkRvY3VtZW50KSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PERvY3Vt
ZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVS
ZWNvcmQsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9kZSkpOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4IGU4MmE4
YmI0MzM3MWVhNmNhYjhmY2ZhODQyNGQ4N2ViM2M5ODYzMTguLjM5YzhkZDVhNTFkMGRhOTVmMjM3
NTU5YmU5ZjBkMzFlZTJkYzM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlw
ZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFNj
cmlwdE1vZHVsZUxvYWRlcj4gc2hhZG93UmVhbG1Mb2FkZXIoSlNDOjpKU0dsb2JhbE9iamVjdCog
cmVhbG1HbG9iYWwpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVyIHJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcik7CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxT
dHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKICAgICBIYXNoU2V0PFJl
ZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAgICAgT3duZXJUeXBlIG1fb3duZXJU
eXBlOworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIG1fc2hhZG93UmVhbG1HbG9iYWwgeyBudWxs
cHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDZkNDZiMTU0MzU2
MTY1MjQ1MDE3OWIwNzQ3Y2RiODc0YjJlZGVkNzEuLjQ5YjAyYmYwZTc2MDMwYjA2ZmQ1OWE3NmZl
NTYwNTQ3MWEyZjZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTUmVtb3RlRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
LmgiCiAjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFs
U2NvcGUuaCIKQEAgLTY4LDYgKzY5LDcgQEAgSlNWTUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRh
KFZNJiB2bSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3coSlNDOjpJ
c29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNSZW1vdGVET01XaW5kb3c+KCkpCiAgICAgLCBtX2hlYXBD
ZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8
SlNXb3JrZXJHbG9iYWxTY29wZT4oKSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNTaGFyZWRX
b3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlPigpKQorICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlPigpKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVhcENlbGxUeXBl
Rm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4MDM2NmEwYzdmNzIy
MDIzZjc5MzgxNGFmNmVhNTcxMWRhOTg0Nzc3Li4zN2M5YTFlNjY0ZGY4NWZiYmRlNjMzMTY5MTE0
OGM3YzYyNjY4N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIEpTQzo6SXNv
SGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3c7CiAgICAgSlND
OjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtlckdsb2JhbFNjb3BlOwog
ICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNTaGFyZWRXb3JrZXJH
bG9iYWxTY29wZTsKKyAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAg
SlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxYTcyYjU0YjdhZmIzMDc5YzU1MDA3YTY4YzA4ODJj
MjQyYTg5NThjLi45NzEzNTEyN2FlMWZlZDgwMTIzYmI2Y2RkYWZhNjgyZGI5MzQxMTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtNzYwLDcgKzc2MCw3IEBAIHN1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQogc3ViIElzRE9N
R2xvYmFsT2JqZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIHJldHVybiAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2UtPnR5cGUt
Pm5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikgfHwg
JGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiVGVzdEdsb2JhbE9iamVjdCI7CisgICAgcmV0dXJu
ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJ
bnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0
b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSB8
fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKIH0KIAogc3ViIFNo
b3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQpAQCAtNzc1LDYgKzc3NSwxMyBAQCBzdWIgU2hv
dWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCiAgICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0
KCRpbnRlcmZhY2UpOwogfQogCitzdWIgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUK
K3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gJGludGVyZmFjZS0+
aXNOYW1lc3BhY2VPYmplY3QoKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIjsKK30KKwogc3ViIEdlbmVyYXRlSW5kZXhlZEdldHRlcgogewogICAg
IG15ICgkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgJGluZGV4RXhwcmVzc2lv
bikgPSBAXzsKQEAgLTI4NzEsNyArMjg3OCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBw
cm94eSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50
ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2Jh
bFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNs
YXNzTmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWY8JGltcGxUeXBlPiYmIGltcGwsIEpTQzo6SlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9j
YXRlQ2VsbDwkY2xhc3NOYW1lPih2bSkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJlLCBXVEZN
b3ZlKGltcGwpKTtcbiIpOwpAQCAtMjkxMyw3ICsyOTIwLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEpTQzo6
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSJ9ID0gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IjsKICAgICAgICAgCiAgICAgIyBQcm90b3R5cGUKLSAgICB1bmxlc3MgKFNob3Vs
ZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5pc05h
bWVzcGFjZU9iamVjdCkgeworICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90
eXBlKCRpbnRlcmZhY2UpIHx8IFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtc
biIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG4iKTsKICAgICB9
CkBAIC0zMTcwLDcgKzMxNzcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIENvbnN0cnVj
dG9yCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VO
YW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8JGltcGxUeXBl
PiYmLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFs
U2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUds
b2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFj
ZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJm
YWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwg
UmVmPCRpbXBsVHlwZT4mJik7XG4iKTsKICAgICB9IGVsc2lmICghTmVlZHNJbXBsZW1lbnRhdGlv
bkNsYXNzKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
JGNsYXNzTmFtZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG5cbiIpOwpA
QCAtMzE4MCw3ICszMTg3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZU5hbWUgZXEgIlJlbW90ZURPTVdp
bmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29k
ZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNj
b3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJX
b3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZh
Y2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTQzo6SlNQcm94eSopO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTtcbiIpOwpAQCAt
Mzk1OSw2ICszOTY2LDggQEAgc3ViIEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3Ry
aW5nRm9yRXhwb3NlZAogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pc0RvY3VtZW50KCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAiV29ya2Vy
IikgewogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5p
c1dvcmtlckdsb2JhbFNjb3BlKCkiKTsKKyAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAiU2hhZG93
UmVhbG0iKSB7CisgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIik7CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQg
ZXEgIldvcmtsZXQiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzV29ya2xldEdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3Nl
ZCBlcSAiQXVkaW9Xb3JrbGV0IikgewpAQCAtNDQ5OCw3ICs0NTA3LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgJGhhc2hTaXplKys7CiAgICAgfQogCi0gICAgaWYgKCEk
aW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNlT3JkaW5h
cnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgbXkgJGp1c3RHZW5lcmF0
ZVZhbHVlQXJyYXkgPSAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiAKICAgICAgICAg
JG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwgJGhhc2hOYW1lLCAkaGFzaFNp
emUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVl
MiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRl
VmFsdWVBcnJheSk7CkBAIC00NTExLDcgKzQ1MjAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7XG4iKTsKICAgICB9CiAKLSAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlU
YWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkgJiYgISRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKFByb3RvdHlwZUhhc1N0YXRp
Y1Byb3BlcnR5VGFibGUoJGludGVyZmFjZSkgJiYgIUlzR2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZh
Y2UpICYmICFTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0s
ICR7Y2xhc3NOYW1lfTo6aW5mbygpLCAke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZVZhbHVlcywg
KnRoaXMpO1xuIik7CiAKICAgICAgICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcyA9IEBy
dW50aW1lRW5hYmxlZE9wZXJhdGlvbnM7CkBAIC00NTkyLDcgKzQ2MDEsNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogCiAgICAgYXNzZXJ0KCJKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VU
X1RSQU5TSVRJT04oKSByZXF1aXJlcyBzdHJpbmdzIHR3byBvciBtb3JlIGNoYXJhY3RlcnMgbG9u
ZyIpIGlmIGxlbmd0aCgkdmlzaWJsZUludGVyZmFjZU5hbWUpIDwgMjsKIAotICAgIGlmICghJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoIVNob3VsZFVzZU9yZGluYXJ5
T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpO1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CkBAIC00NjI0LDcgKzQ2MzMs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSwg
cHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9i
YWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJm
YWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRl
cmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIEFkZElu
Y2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlSW5JbXBsKCRpbnRlcmZhY2VOYW1lKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJl
LCBXVEZNb3ZlKGltcGwpKVxuIik7CkBAIC00NjQ1LDcgKzQ2NTQsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05h
bWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTV2luZG93UHJveHkqIHByb3h5KVxuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7XG5cbiIpOwotICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGlu
dGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFj
ZU5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29w
ZSIpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7CkBAIC00NzQ1LDcgKzQ3NTQsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHZtLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQod3JhcHBlZCgpLm1lbW9yeUNvc3Qo
KSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1l
bW9yeUNvc3R9OwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAgIHVubGVz
cyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZh
Y2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmpl
Y3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5
cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCog
JHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CkBAIC03NTA3LDcgKzc1MTYsNyBA
QCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkb3V0cHV0QXJy
YXksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0gQF87CiAKLSAgICByZXR1cm4gaWYgJGludGVy
ZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisgICAgcmV0dXJuIGlmIFNob3VsZFVzZU9yZGluYXJ5
T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgJHByb3RvdHlwZUNsYXNzTmFt
ZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCkBAIC03NzgzLDcgKzc3OTIsNyBAQCBzdWIg
R2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoISRnZW5lcmF0aW5nTGVn
YWN5RmFjdG9yeUZ1bmN0aW9uIGFuZCAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CiAgICAgICAg
IG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+cGFyZW50VHlwZS0+bmFt
ZTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke3BhcmVudENsYXNz
TmFtZX06OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTtcbiIpOwotICAgIH0gZWxz
aWYgKCRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgfSBlbHNpZiAoU2hvdWxk
VXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJv
dG90eXBlKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9w
cmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNWI4OTMxM2ZlNWNhZWZiODkxMmZiNDM2ZjE0NzY4MmYw
NDc1NzdiYS4uNzQxYTU4YjE5ZjEyOGRlNGYwOWIxY2I1NjZjZjUxYTkxZWQ3ZjhiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwK
QEAgLTQ0LDYgKzQ0LDcgQEAgbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CiBteSAkY29uc3Ry
dWN0b3JzSGVhZGVyRmlsZTsKIG15ICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZTsKIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsK
IG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CkBAIC02NSw3ICs2
Niw4IEBAIG15IEBzdXBwb3J0ZWRHbG9iYWxDb250ZXh0cyA9ICgKICAgICAiRGVkaWNhdGVkV29y
a2VyIiwKICAgICAiU2VydmljZVdvcmtlciIsCiAgICAgIlBhaW50V29ya2xldCIsCi0gICAgIkF1
ZGlvV29ya2xldCIKKyAgICAiQXVkaW9Xb3JrbGV0IiwKKyAgICAiU2hhZG93UmVhbG0iLAogKTsK
IAogIyBUb2dnbGUgdGhpcyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBmYXN0IHJlZ3VsYXIgZXhwcmVz
c2lvbiBiYXNlZCAicGFyc2luZyIgdXNlZApAQCAtODIsNiArODQsNyBAQCBHZXRPcHRpb25zKCdk
ZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ2NvbnN0cnVjdG9yc0hlYWRlckZp
bGU9cycgPT4gXCRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlLAogICAgICAgICAgICAnd2luZG93Q29u
c3RydWN0b3JzRmlsZT1zJyA9PiBcJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAg
ICd3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdzaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAnZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlPXMnID0+IFwkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
LAogICAgICAgICAgICAnc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1z
JyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAg
ICAgICdzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCkBAIC05OCw2ICsxMDEsNyBAQCBk
aWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3JvcyB1c2luZyAtLWRlZmluZXMuJykgdW5sZXNz
IGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNp
bmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3aW5kb3dD
b25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5n
IC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNpZnkgYW4g
b3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1kZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lm
eSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1z
aGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xMTMsNiArMTE3
LDcgQEAgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpOwogJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUpOwogJHdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKTsKICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2lu
UGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTE1
NCw2ICsxNTksNyBAQCBteSAlZGljdGlvbmFyeURlcGVuZGVuY2llczsKIG15ICVzdXBwbGVtZW50
YWxzOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgPSAiIjsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
PSAiIjsKQEAgLTI3Miw2ICsyNzgsOCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBr
ZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICAgICAgICAgICAgICAgICAkd2luZG93Q29uc3RydWN0
b3JzQ29kZSAuPSAkd2luZG93QWxpYXNlcyBpZiAkd2luZG93QWxpYXNlczsKICAgICAgICAgICAg
IH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJXb3JrZXIiKSB7CiAgICAgICAgICAgICAgICAg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKKyAg
ICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTaGFkb3dSZWFsbSIpIHsKKyAg
ICAgICAgICAgICAgICAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0g
JGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAi
RGVkaWNhdGVkV29ya2VyIikgewogICAgICAgICAgICAgICAgICRkZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9
IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2VydmljZVdvcmtlciIpIHsKQEAgLTMwMyw2ICsz
MTEsNyBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxlTmFtZUhh
c2gpIHsKICMgR2VuZXJhdGUgcGFydGlhbCBpbnRlcmZhY2VzIGZvciBDb25zdHJ1Y3RvcnMuCiBH
ZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRPTVdpbmRvdyIsICR3aW5kb3dDb25zdHJ1Y3RvcnND
b2RlLCAkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2Uo
Ildvcmtlckdsb2JhbFNjb3BlIiwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7
CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwg
JGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGRlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlIiwg
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYXJlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg2YjE1NzUyY2JjOTFiMmQ4ZjBh
YzE2MzRlOThjYjQ2ZmRhNTdlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bApAQCAtMCwwICsxLDMgQEAKK3BhcnRpYWwgaW50ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUgeworICAgIGF0dHJpYnV0ZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IgU2hh
ZG93UmVhbG1HbG9iYWxTY29wZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVw
CmluZGV4IGMxMjMyMTUyNDYxYTZjMmVkMmU1NDgwYTJlN2M2ZGI2ODg0YmE0NjMuLmQ2NjMwNzlj
OTEzN2M5NzFmMjVhMmVmZWUyNTE3YmUzZWMyZWRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBl
bmRlbmNpZXMuZGVwCkBAIC0zMDgsNiArMzA4LDggQEAgV2ViRE9NVGVzdFR5cGVkZWZzLmg6CiBK
U1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oOiAKIERPTVRlc3RWb2lkQ2FsbGJhY2tGdW5jdGlv
bi5oOiAKIFdlYkRPTVRlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oOiAKK0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGw6CiBKU1dvcmtlckdsb2JhbFNjb3Bl
Lmg6IFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NV29ya2VyR2xvYmFsU2Nv
cGUuaDogV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01Xb3JrZXJHbG9i
YWxTY29wZS5oOiBXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDM1MzNjMjBlMmVlNTc5NjBi
NTRiZmUxNTM2ZGUzZmIyZjhjY2ExODYuLjJhYWI3YjYyNTllN2YxMjkzYTgwMWY4YjMwZTI5OGQy
MmVjN2NjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVu
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzV29ya2VyR2xv
YmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQpAQCAtMzEyLDYgKzMxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ2FsbGVycyBzaG91bGQgdHJ5
IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4KICAgICB2aXJ0dWFsIHZv
aWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVu
c2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29s
ZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGlu
dCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRD
YWxsU3RhY2s+JiYpID0gMDsKKwogICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVkU2NyaXB0Kik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRkY2VmMzNlZGM5MTQ5NzE0ZTgzNmVkY2RmNTEwNzdlNDU3MjU3ZGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCkBAIC0w
LDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaCIKKworI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2hhZG93UmVhbG1HbG9iYWxTY29wZSk7CisK
K1JlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp0
cnlDcmVhdGUoSlNDOjpWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiB3cmFwcGVyLCBTY3JpcHRN
b2R1bGVMb2FkZXIqIGxvYWRlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUodm0sIHdyYXBwZXIsIGxvYWRlcikpOworfQorCitTaGFkb3dSZWFsbUds
b2JhbFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTQzo6Vk0mIHZtLCBKU0RPTUdsb2Jh
bE9iamVjdCogd3JhcHBlciwgU2NyaXB0TW9kdWxlTG9hZGVyKiBsb2FkZXIpCisgICAgOiBtX3Zt
KCZ2bSkKKyAgICAsIG1faW5jdWJhdGluZ1dyYXBwZXIodm0sIHdyYXBwZXIpCisgICAgLCBtX3Bh
cmVudExvYWRlcihsb2FkZXIpCit7IH0KKworU2NyaXB0TW9kdWxlTG9hZGVyJiBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIoKQoreworICAgIGlmIChtX21vZHVsZUxvYWRlcikK
KyAgICAgICAgcmV0dXJuICptX21vZHVsZUxvYWRlcjsKKworICAgIGF1dG8gd3JhcHBlciA9IG1f
d3JhcHBlci5nZXQoKTsKKyAgICBBU1NFUlQod3JhcHBlcik7CisKKyAgICBtX21vZHVsZUxvYWRl
ciA9IG1fcGFyZW50TG9hZGVyLT5zaGFkb3dSZWFsbUxvYWRlcih3cmFwcGVyKTsKKyAgICByZXR1
cm4gKm1fbW9kdWxlTG9hZGVyOworfQorCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp3cmFwcGVyKCkKK3sKKyAgICByZXR1cm4gbV93cmFwcGVy
LmdldCgpOworfQorCitTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp+U2hhZG93UmVhbG1HbG9iYWxT
Y29wZSgpIHsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MzlkMDEwNTBjYjQ4ZTUy
YzA3Zjk5NTUyMWI3N2IzNWY4NjdlZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvV2Vhay5oPgor
I2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBK
U0MgeyBjbGFzcyBWTTsgfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIFNj
cmlwdE1vZHVsZUxvYWRlcjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNz
IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFkb3dSZWFsbUds
b2JhbFNjb3BlPiB7CisgICAgZnJpZW5kIGNsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsK
KworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gdHJ5
Q3JlYXRlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCosIFNjcmlwdE1vZHVsZUxvYWRlciop
OworICAgIH5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCk7CisKKyAgICBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlJiBzZWxmKCkgeyByZXR1cm4gKnRoaXM7IH0KKyAgICBTY3JpcHRNb2R1bGVMb2FkZXIm
IG1vZHVsZUxvYWRlcigpOworICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqIHdyYXBw
ZXIoKTsKKworcHJvdGVjdGVkOgorICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNDOjpWTSYs
IEpTRE9NR2xvYmFsT2JqZWN0KiwgU2NyaXB0TW9kdWxlTG9hZGVyKik7CisKK3ByaXZhdGU6Cisg
ICAgUmVmUHRyPEpTQzo6Vk0+IG1fdm07CisgICAgSlNDOjpTdHJvbmc8SlNET01HbG9iYWxPYmpl
Y3Q+IG1faW5jdWJhdGluZ1dyYXBwZXI7CisgICAgU2NyaXB0TW9kdWxlTG9hZGVyKiBtX3BhcmVu
dExvYWRlcjsKKyAgICBKU0M6OldlYWs8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZT4gbV93
cmFwcGVyIHsgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21v
ZHVsZUxvYWRlciB7IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDA2
ZmQ0YzM4NWRmNmE5MTMxYjM3YWI5ODI5MTA2YTMyZGZjMDAxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApAQCAtMCwwICsx
LDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KworWworICAgIEV4cG9zZWQ9U2hhZG93UmVhbG0sCisgICAgSlNMZWdhY3lQYXJlbnQ9SlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZSwKKyAgICBHbG9iYWw9U2hhZG93UmVhbG0sCisgICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QsCitdIGludGVyZmFjZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgc2VsZjsKK307
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGUx
NDU3MGNhMTBhYjU4ZDAwMWUzMzk3NmQ3MGM1NWVhYTQ4NGE3Yi4uNmQxMjAyN2QzNzUyMGJlYjJi
NjIyYWI5NWRjYmVlODY5NWE1YWQ5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEyLTEwICBKb3NlcGggR3Jp
ZWdvICA8amdyaWVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2Ug
V2ViQ29yZSBtb2R1bGUgbG9hZGVycyBmb3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvYmluZGluZ3MvbWFpbi5weToKKyAgICAgICAgKEJpbmRpbmdzVGVzdHMuZ2VuZXJhdGVf
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3kpOgorICAgICAgICAoQmluZGluZ3NUZXN0cy5tYWluKToK
KwogMjAyMS0xMi0wOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29j
b2FdIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3RvckV4dGVuc2lv
biBjbGllbnRzIHRvIGJlIHRvIG5vdGlmaWVkIHdoZW4gYW4gZXh0ZW5zaW9uIHRhYiBuYXZpZ2F0
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQppbmRleCAwMjJkMDllODY5
MzExZjAwNDQzNDA5NjljYTM0OTg1Y2I3MjBlYTU3Li5jZThiNTA2MzEwZjE5N2QyNTNhNWI1MTg1
OWYxN2Q2ZTMxOWQ1YTdiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5
CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICBleGl0
X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9jb2RlCiAKLSAgICBkZWYg
Z2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBz
dXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5k
ZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFyZWR3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lf
ZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhZG93
cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICBpZGxf
ZmlsZXNfbGlzdCA9IHRlbXBmaWxlLm1rc3RlbXAoKQogICAgICAgICBmb3IgaW5wdXRfZmlsZSBp
biBvcy5saXN0ZGlyKGlucHV0X2RpcmVjdG9yeSk6CiAgICAgICAgICAgICAobmFtZSwgZXh0ZW5z
aW9uKSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKQEAgLTk0LDYgKzk0LDcgQEAgY2xh
c3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcycsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsCiAgICAgICAgICAg
ICAgICAnLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlJywgd2luZG93X2NvbnN0cnVjdG9yc19maWxl
LAogICAgICAgICAgICAgICAgJy0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywg
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCisgICAgICAgICAgICAgICAnLS1z
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHNoYWRvd3JlYWxtZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1kZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUnLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwKQEAgLTE5OSw2ICsyMDAsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBw
bGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlbmFtZSA9ICdTdXBwbGVtZW50YWxEZXBl
bmRlbmNpZXMuZGVwJwogICAgICAgICBkb21fd2luZG93X2NvbnN0cnVjdG9yc19maWxlbmFtZSA9
ICdET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
JworICAgICAgICBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9
ICdTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgc2VydmljZXdvcmtlcmds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsJwpAQCAtMjEzLDYgKzIxNSw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHN1
cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19k
aXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZW5hbWUpCiAgICAgICAgIHdpbmRv
d19jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qg
c2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBkb21fd2luZG93X2NvbnN0
cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVz
dWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKQorICAgICAgICBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGVuYW1lKQogICAgICAgICBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNl
dF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qg
c2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzZXJ2aWNld29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBzaGFyZWR3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBp
ZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzaGFyZWR3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCkBAIC0yMjEsNyArMjI0LDcgQEAg
Y2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYu
cmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVz
ZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAg
ICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVj
dG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxl
X2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNl
cnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlv
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBh
IHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRpbC5ybXRy
ZWUod29ya19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzMyw2ICsyMzYs
OCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNz
ZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9i
YWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2ds
b2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgc2hhZG93cmVhbG1n
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgorICAgICAgICAgICAgICAgIGFsbF90
ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFu
Z2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIGRlZGlj
YXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAg
ICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVj
dF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVj
dG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjEwYTVjZTFlOGIwMzY0ZTA2YTQ2YzNkNDM5Y2E1ZDA5M2YxZjk5My4uZGM4M2UwYWQ5
OWUwYWY2N2I0MWMwMmY3YjdhMmZhNzY4ZDA2ZTg0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisy
MDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBmb3Igc2hhZG93IHJl
YWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbXByb3ZlIHRlc3QgY292ZXJhZ2UgYSBiaXQgZm9y
IHNoYWRvdyByZWFsbXMsIGVzcGVjaWFsbHkgcnVubmluZyBuZXN0ZWQgb3IgaW4gd29ya2VyIGNv
bnRleHRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFk
b3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL1No
YWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL1NoYWRvd1JlYWxt
LXdvcmtlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVh
bG0tZXZhbHVhdGUuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0X2Nsb3NlZF9vcGVuZXIpOgor
ICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5jIHQpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qczogQWRkZWQuCisgICAgICAgICh3cmFwcGVkTG9n
KToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0KToKKyAgICAgICAgKiBqcy9zY3JpcHQt
dGVzdHMvZXhhbXBsZS1tb2R1bGUuanM6IEFkZGVkLgorICAgICAgICAoY2hlY2spOgorICAgICAg
ICAobG9nX2VxdWFsKToKKyAgICAgICAgKGNoZWNrX25lc3RlZCk6CisgICAgICAgIChzZXRWYWx1
ZSk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3NoYWRvdy1yZWFsbS13b3JrZXIuanM6IEFk
ZGVkLgorICAgICAgICAoYXNzZXJ0X2VxdWFscyk6CisgICAgICAgIChhc3luYyB0ZXN0KToKKyAg
ICAgICAgKGFzeW5jIGF3YWl0KToKKwogMjAyMS0xMi0wOSAgTWF0dCBXb29kcm93ICA8bWF0dC53
b29kcm93QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnByZWZpeCAtd2Via2l0LW1hc2sKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNjk4MDQ5NzNmZGVhYWNjZmI0ZGEzM2I2M2ZkYjkzODI1Y2Y3NTFkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hh
ZG93UmVhbG0ucHJvdG90eXBlLmV2YWx1YXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKK1BBU1Mgd2luZG93LmNsb3NlKCkgYWZmZWN0cyBuYW1lIHRhcmdldGluZyBpbW1lZGlh
dGVseQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41OTZhYWUxZGFkNThjMGEwNzhjZTBkMDdiYTI5NGM2YjA3MzliYzM5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbApAQCAtMCwwICsx
LDExIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
U2hhZG93UmVhbG0tZXZhbHVhdGUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg2MTRjNTU1YTgwOGI3YjJmZmI3ZmM2MTc5ZjcwNzQ3NDg1NzliMmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiA0MgorVGVzdCB0
byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmltcG9y
dFZhbHVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitzaGFkb3dSZWFsbTogY2Fs
bGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBlciB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworc2hhZG93
UmVhbG06IG5lc3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCisKK1BBU1Mg
Y2FuIGltcG9ydCBtb2R1bGUgaW4gYSBzaGFkb3cgcmVhbG0KK1BBU1MgY2FuIG5lc3QgcmVhbG1z
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwZDk3MmJmNjljMjEyNmIwNWU1YWM0OTExZDM2ZDE1YWM3ZjQ1OGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10
cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hOTYzN2I5YzVkYzAxMDA0ZTU0MDRmOTA5NWVmZTA0N2EyMjc4MDY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQSXMg
YXJlIGF2YWlsYWJsZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRzCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHNjcmlwdC10
ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCitQQVNTIFtXb3JrZXJdIGltcG9ydC12YWx1ZQor
W1dvcmtlcl0gc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBj
b3JyZWN0IGdsb2JhbDogT0sKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZh
bCB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworUEFTUyBbV29ya2VyXSBuZXN0ZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1M2FjNjQ3YWI1NDU5ODdiYTZlODVk
MDFkMTIwMzhjZjIxOTVmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFk
b3dSZWFsbS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NP
cHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQSXMgYXJlIGF2YWlsYWJs
ZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRzIik7CisgICAgICAgICBj
b25zdCB3b3JrZXIgPSBzdGFydFdvcmtlcigic2NyaXB0LXRlc3RzL3NoYWRvdy1yZWFsbS13b3Jr
ZXIuanMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmMgPS4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmMg
PS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93
UmVhbG0tZXZhbHVhdGUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVh
bG0tZXZhbHVhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJkNDkzZmRmMDc2ZTk4NDBjMWJmZDczODQ2ZWRk
NmFlMTI2YjUyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5qcwpAQCAtMCwwICsxLDIzIEBACitkZXNjcmlwdGlvbigi
VGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJvdG90eXBl
LmV2YWx1YXRlIik7CisKK2Z1bmN0aW9uIGFzc2VydF9jbG9zZWRfb3BlbmVyKHcsIGNsb3NlZCwg
b3BlbmVyKSB7CisgIGFzc2VydF9lcXVhbHMody5jbG9zZWQsIGNsb3NlZCk7CisgIGFzc2VydF9l
cXVhbHMody5vcGVuZXIsIG9wZW5lcik7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3Qgb3BlbmVlID0gd2luZG93Lm9wZW4oIiIsICJncmVhdG5hbWUiKTsKKyAgY29uc3Qg
b3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworCisgIC8vIHNldHVwIHJlYWxt
IG5lc3RlZCBpbiBvdXRlclNoYWRvd1JlYWxtCisgIG91dGVyU2hhZG93UmVhbG0uZXZhbHVhdGUo
InZhciBpbm5lclJlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7Iik7CisgIG91dGVyU2hhZG93UmVh
bG0uZXZhbHVhdGUoInZhciBjYWxsSW5Jbm5lciA9IGlubmVyUmVhbG0uZXZhbHVhdGUoXCIoY2Ip
ID0+IGNiKClcIik7Iik7CisKKyAgY29uc3QgY2FsbEluTmVzdGVkUmVhbG0gPSBvdXRlclNoYWRv
d1JlYWxtLmV2YWx1YXRlKCIoY2IpID0+IGNhbGxJbklubmVyKGNiKSIpOworCisgIC8vIGNhbGwg
Y2xvc2Ugd2luZG93IHR3byBsZXZlbHMgZGVlcAorICBhc3NlcnRfY2xvc2VkX29wZW5lcihvcGVu
ZWUsIGZhbHNlLCBzZWxmKTsKKyAgY2FsbEluTmVzdGVkUmVhbG0oKCkgPT4gb3BlbmVlLmNsb3Nl
KCkpOworICAvLyBvcGVuZWUuY2xvc2UoKQorICBhc3NlcnRfY2xvc2VkX29wZW5lcihvcGVuZWUs
IHRydWUsIHNlbGYpOworfSwgIndpbmRvdy5jbG9zZSgpIGFmZmVjdHMgbmFtZSB0YXJnZXRpbmcg
aW1tZWRpYXRlbHkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9T
aGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9T
aGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTVmZTNlMjE5N2ZhYjg1YmVk
Zjc2YTcwYWFlODBkZGI3NmUzMDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmpzCkBAIC0wLDAgKzEsMzIgQEAK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dS
ZWFsbS5wcm90b3R5cGUuaW1wb3J0VmFsdWUiKTsKKworZnVuY3Rpb24gd3JhcHBlZExvZyhwcmVm
aXgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAgICBkZWJ1ZyhwcmVmaXgg
KyAiOiAiICsgbXNnKTsKKyAgICB9OworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgY29uc3QgY2hl
Y2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1
bGUuanMiLCAiY2hlY2siKTsKKyAgYXNzZXJ0X2VxdWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNo
YWRvd1JlYWxtIikpLCB0cnVlKTsKKworICBjb25zdCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBvcnQo
Ii4vZXhhbXBsZS1tb2R1bGUuanMiKTsKKyAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUs
IHRydWUsICJibG9vcCIpOworICBvdXJNb2R1bGUuc2V0VmFsdWUoNDIpOworICBhc3NlcnRfZXF1
YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIpOworCisgIGNvbnN0IGltcG9ydGVkVmFsID0gYXdhaXQg
b3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1
ZSIpOworICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsLCB0cnVlKTsKKyAgY29uc3Qgc2V0VmFs
dWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBs
ZS1tb2R1bGUuanMiLCAic2V0VmFsdWUiKTsKKyAgc2V0VmFsdWVJbXBvcnRlZCgxMDApOworICBj
b25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIu
L2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7CisgIGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRW
YWwyLCAxMDApOworICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIpOworfSwgImNh
biBpbXBvcnQgbW9kdWxlIGluIGEgc2hhZG93IHJlYWxtIik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7
CisgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUo
Ii4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2tfbmVzdGVkIik7CisgICAgYXNzZXJ0X2VxdWFs
cyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKK30sICJjYW4gbmVz
dCByZWFsbXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9leGFt
cGxlLW1vZHVsZS5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9leGFtcGxlLW1vZHVs
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMzJlYmM3YTUwMzBlZDgwNDAxMDMyYjA4Mzk1MjkzNDllNTI4YmU1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2V4YW1wbGUt
bW9kdWxlLmpzCkBAIC0wLDAgKzEsMzIgQEAKK3ZhciB2YWx1ZSA9IHRydWU7CisKK3ZhciBjaGVj
ayA9IGZ1bmN0aW9uKGxvZykgeworICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFs
VGhpcykgIT09IE9iamVjdC5wcm90b3R5cGUpIHsKKyAgICAgICAgbG9nKCJnbG9iYWxUaGlzIHBy
b3RvdHlwZSBpcyBPYmplY3QucHJvdG90eXBlIik7CisgICAgICAgIGxvZyhPYmplY3QuZ2V0UHJv
dG90eXBlT2YoZ2xvYmFsVGhpcykudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGxvZ19lcXVhbChsb2csIG1z
ZywgeCwgeSkgeworICAgIGNvbnN0IHJlc3VsdCA9IHggPT0geTsKKyAgICBsb2coYCR7bXNnfTog
JHtyZXN1bHQgPyAnT0snIDogJ0ZBSUxFRCd9YCk7Cit9CisKK3ZhciBjaGVja19uZXN0ZWQgPSBm
dW5jdGlvbihsb2cpIHsKKyAgICBjb25zdCBzciA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgIGds
b2JhbFRoaXMueCA9IDEwMDsKKyAgICBzci5ldmFsdWF0ZShgZ2xvYmFsVGhpcy54ID0gNDJgKTsK
KyAgICBjb25zdCBmID0gc3IuZXZhbHVhdGUoYCgpID0+IHtyZXR1cm4gZ2xvYmFsVGhpcy54O31g
KTsKKyAgICBsb2dfZXF1YWwobG9nLCAiY2FsbGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBlciB1c2Vz
IGNvcnJlY3QgZ2xvYmFsIiwgNDIsIGYoKSk7CisgICAgbG9nX2VxdWFsKGxvZywgIm5lc3RlZCBy
ZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWwiLCA0Miwgc3IuZXZhbHVhdGUoYGdsb2JhbFRo
aXMueGApKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordmFyIHNldFZhbHVlID0gZnVuY3Rpb24g
KG5ld1ZhbHVlKSB7CisgICAgY29uc29sZS5sb2cobmV3VmFsdWUpOworICAgIHZhbHVlID0gbmV3
VmFsdWU7Cit9CisKK2V4cG9ydCB7IHZhbHVlLCBzZXRWYWx1ZSwgY2hlY2ssIGNoZWNrX25lc3Rl
ZCB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3NoYWRvdy1yZWFs
bS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdv
cmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYTEzZTUwZTFhZDFjMWM0M2MyN2EwMTAwM2RmOTllNGRmNDdl
Mzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3NoYWRv
dy1yZWFsbS13b3JrZXIuanMKQEAgLTAsMCArMSw1MSBAQAoraW1wb3J0U2NyaXB0cygiLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIik7CisKK2Z1bmN0aW9uIGFzc2VydF9lcXVhbHMoeCwg
eSkgeworICAgIGlmICh4ID09PSB5KSByZXR1cm47CisgICAgdGhyb3cgbmV3IEVycm9yKGBhc3Nl
cnRpb24gZmFpbHVyZTogZXhwZWN0ZWQgJHt4fSwgZ290ICR7eX1gKTsKK30KKworZnVuY3Rpb24g
d3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAg
ICBkZWJ1ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICB9OworfQorCisKK2FzeW5jIGZ1bmN0
aW9uIHRlc3Qoa2V5LCBmKSB7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgZigpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChrZXkgKyBlLnRvU3RyaW5nKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHRlc3RQYXNzZWQoa2V5KTsKK30KKworKGFzeW5jIGZ1
bmN0aW9uICgpIHsKKyAgICBhd2FpdCB0ZXN0KCJpbXBvcnQtdmFsdWUiLCBhc3luYyAoKSA9PiB7
CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAg
ICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUo
Ii4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2siKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhj
aGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICAgICAgICBjb25z
dCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBvcnQoIi4vZXhhbXBsZS1tb2R1bGUuanMiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIHRydWUsICJibG9vcCIpOworICAgICAg
ICBvdXJNb2R1bGUuc2V0VmFsdWUoNDIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVs
ZS52YWx1ZSwgNDIpOworCisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsID0gYXdhaXQgb3V0ZXJT
aGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1ZSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsLCB0cnVlKTsKKyAgICAgICAgY29uc3Qg
c2V0VmFsdWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4v
ZXhhbXBsZS1tb2R1bGUuanMiLCAic2V0VmFsdWUiKTsKKyAgICAgICAgc2V0VmFsdWVJbXBvcnRl
ZCgxMDApOworICAgICAgICBjb25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRvd1Jl
YWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwyLCAxMDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KG91ck1vZHVsZS52YWx1ZSwgNDIpOworICAgIH0pOworCisgICAgYXdhaXQgdGVzdCgibmVzdGVk
IiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNo
YWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRvd1Jl
YWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrX25lc3RlZCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93UmVhbG0iKSks
IHRydWUpOworICAgIH0pOworICAgIGZpbmlzaEpTVGVzdCgpOworfSkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446787</attachid>
            <date>2021-12-10 12:48:38 -0800</date>
            <delta_ts>2021-12-10 14:48:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211210154837.patch</filename>
            <type>text/plain</type>
            <size>103224</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA5ODk4MDQwZmFmMjI0YjlhMzNmZWU3OTBiMDc2NmJlNjc2M2E1OGU4Li5iM2QyYjA0
YTZkNjM1YjA0MmEyOWI5MDc1YTk1M2FhNGVlMWQ2NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNzU4LDYgKzc1OCw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9i
amVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICBudWxscHRyLCAvLyBkZWZh
dWx0TGFuZ3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0
ciwgLy8gaW5zdGFudGluYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFs
T2JqZWN0CiB9OwogCiBHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCmluZGV4IDU5MjJkNTYyYzQ2ZjgwMGIxYWMxYWFkN2UxOGQ3N2Q5MmI0YTIx
ODcuLmQ0MzUyMjhmNTkzNDUwYmU5OTFkNjE5ZWM3ODQ4YzA4MTc5MGY2ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUzNyw2
ICs1MzcsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6
c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICBudWxscHRyLCAvLyBkZWZhdWx0TGFu
Z3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0ciwgLy8g
aW5zdGFudGlhdGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QK
IH07CiAKIC8qIFNvdXJjZSBmb3IgSlNHbG9iYWxPYmplY3QubHV0LmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDE4NGQxYzhiZmE3YThm
MGE0YWE1MDgyM2ZiYTZlM2I4MmJkMTk5YWYuLmMzMzhkN2Q5MTMyMmYzMzc1NDgyMjdlZjcxZWM3
NmNjMGU5ZjMxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtMjY0LDYgKzI2NCw5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSB7CiAKICAgICB0eXBlZGVmIEpTUHJvbWlzZSogKCpJbnN0YW50aWF0ZVN0cmVhbWluZ1B0
cikoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBKU09iamVjdCopOwogICAgIEluc3RhbnRpYXRl
U3RyZWFtaW5nUHRyIGluc3RhbnRpYXRlU3RyZWFtaW5nOworCisgICAgdHlwZWRlZiBKU0dsb2Jh
bE9iamVjdCogKCpEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyKShWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7CisgICAgRGVyaXZlU2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0ciBkZXJp
dmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdDsKIH07CiAKIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDog
cHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewpAQCAtMTA4Miw2ICsxMDg1LDExIEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3Qg
SlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICBzdGF0aWMgSlNHbG9iYWxP
YmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6
Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCBqc051bGwoKSksIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKSk7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KGNv
bnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNHbG9iYWxPYmplY3QqKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBSdW50aW1lRmxhZ3MgamF2YVNjcmlwdFJ1bnRp
bWVGbGFncyhjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIFJ1bnRpbWVGbGFncygpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxt
Q29uc3RydWN0b3IuY3BwCmluZGV4IDE2ZThhYWMzZGFmMzFjYWJmNmIxODllYWQxYjMzMTZjNGFj
MTU3ZjcuLmM4ODZiYWMwNjNiNDJjNjcyZjJmZWM5NTE4MWYxMDE3YjY2YWYxYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3Ry
dWN0b3IuY3BwCkBAIC01Myw3ICs1Myw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RXaXRoU2hhZG93UmVhbG1Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFN0cnVjdHVyZSogc2hhZG93UmVh
bG1TdHJ1Y3R1cmUgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+c2hhZG93UmVhbG1Qcm90b3R5cGUoKSk7Ci0gICAgSlNP
YmplY3QqIHNoYWRvd1JlYWxtT2JqZWN0ID0gU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0ZSh2bSwg
c2hhZG93UmVhbG1TdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKSk7CisgICAgSlNPYmplY3QqIHNoYWRvd1JlYWxtT2JqZWN0ID0gU2hhZG93UmVhbG1PYmpl
Y3Q6OmNyZWF0ZSh2bSwgc2hhZG93UmVhbG1TdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShzaGFkb3dSZWFsbU9iamVjdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcAppbmRl
eCBhMjVhNDAwODA5MzAwODFmMDA4ZTYzZTExNjlkY2Y3N2U3NDM4ZmM4Li4xYjdiZTlkYTcxN2Q1
NzYxMGY2ZWJjOTIyMDU0OTUwZGJiODg0OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCkBAIC01NywxMiArNTcsMTIgQEAg
dm9pZCBTaGFkb3dSZWFsbU9iamVjdDo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBW
aXNpdG9yJiB2aXNpdG9yKQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oU2hhZG93UmVhbG1PYmpl
Y3QpOwogCi1TaGFkb3dSZWFsbU9iamVjdCogU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0ZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSog
bWV0aG9kVGFibGUpCitTaGFkb3dSZWFsbU9iamVjdCogU2hhZG93UmVhbG1PYmplY3Q6OmNyZWF0
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogewogICAgIFNoYWRvd1JlYWxtT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxTaGFkb3dSZWFsbU9iamVjdD4odm0pKSBTaGFkb3dSZWFsbU9iamVjdCh2bSwg
c3RydWN0dXJlKTsKICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21N
ZXRob2RUYWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxs
KCkpLCBtZXRob2RUYWJsZSk7Ci0gICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5zZXQodm0sIG9i
amVjdCwgZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0dsb2JhbE9iamVjdCogc2hhZG93UmVhbG1HbG9i
YWxPYmplY3QgPSBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPmRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QpOworICAgIG9iamVjdC0+
bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIHNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KTsK
ICAgICByZXR1cm4gb2JqZWN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaAppbmRleCBkMDg4ZmY3ODQyZTIwYWU1NDI1MmY2ZGIw
NWQ0YzdlODRmOWViMTVjLi5hZGIyZWQwMjJhMzcwYzQwMzkyNDkzN2I1YWE3YjUzYjk4ZjI3ZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2Jq
ZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0g
ICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBjb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSopOworICAgIHN0YXRpYyBTaGFkb3dSZWFsbU9iamVj
dCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNHbG9iYWxPYmplY3QqKTsKIAogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ3MzI4MzhmMjQ2ZTBiMmIxNGZkMDFhMGNkNjI0
M2UwYjYzMTE1ZDUuLjI0ZjQ0ZTZiY2IxYzcyNWEzNDQzNjk3Y2FjMDkyM2JmNDY1NjBlNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA2LDYgKzEyMDYsNyBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAogICAgIHBh
Z2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKKyAgICBw
YWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCiAgICAgcGFnZS9TaGFyZURhdGEuaWRsCiAg
ICAgcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwKICAgICBwYWdlL1VuZG9JdGVt
LmlkbApAQCAtMjA3OCw2ICsyMDc5LDcgQEAgc2V0KElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUg
JHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RPTUlzb1N1YnNwYWNlcy5oKQogc2V0KENP
TlNUUlVDVE9SU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRE9N
Q29uc3RydWN0b3JzLmgpCiBzZXQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9ET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoU0hBRE9XUkVBTE1H
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09V
UkNFU19ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNl
dChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwpCiBzZXQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJD
b3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbCkKQEAgLTIyNjIsMTIgKzIyNjQsMTMgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29y
ZUJpbmRpbmdzCiAgICAgR0VORVJBVE9SIEpTCiAgICAgU1VQUExFTUVOVEFMX0RFUEZJTEUgJHtT
VVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgIFBQX0VYVFJBX09VVFBVVAotICAgICAg
ICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxF
fSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRX0gJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KKyAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRX0gJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfSAke0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAg
IFBQX0VYVFJBX0FSR1MKICAgICAgICAgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0KICAgICAgICAgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICR7
Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfQogICAgICAgICAtLXdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgJHtXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9
CisgICAgICAgIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFE
T1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLWRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0RFRElDQVRFRFdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICR7U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2MDUxNDA1YWRhNTNmNjg1YmNkODExMjBiYTI2OTc0
MDhmNzIzODY4Li5kM2YxZWE5NWZhOTRjOWQ1NjRjMTFhM2YzNDM0ZjAyNTYyNGRkNTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNTUsNiArMTI1NSw3IEBAIEpTX0JJTkRJ
TkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRvSXRlbS5pZGwgXApAQCAtMjA3Niw2ICsyMDc3LDcg
QEAgSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSA9IERPTUlzb1N1YnNwYWNlcy5oCiBDT05TVFJV
Q1RPUlNfSEVBREVSX0ZJTEUgPSBET01Db25zdHJ1Y3RvcnMuaAogV0lORE9XX0NPTlNUUlVDVE9S
U19GSUxFID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbAogV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgPSBXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK1NIQURP
V1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmlkbAogREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFID0gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0yMDkxLDYgKzIwOTMsNyBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoQ09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFKSBcCiAgICAgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUp
IFwKICAgICAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChT
SEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKQEAgLTIxMDEsNyArMjEwNCw3IEBAIElETF9JTlRF
Uk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMp
KQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NS
SVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJF
X0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCSQoc2hlbGwgZWNobyAkKEpTX0JJ
TkRJTkdfSURMUykgfCB0ciAiICIgIlxuIiA+IElETEZpbGVOYW1lc0xpc3QudHh0KQotCSQoUEVS
TCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmlu
ZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIg
LS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0Zp
bGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQo
U1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQo
SVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1df
Q09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFyZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRh
bE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQo
RkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxG
aWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0ZpbGUgJChJ
RExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExF
TUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQoSVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09OU1RSVUNU
T1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChQQUlOVFdP
UktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1hdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQTEVNRU5UQUxfTUFLRUZJ
TEVfREVQUykKIAogIwogIyBFbWl0IHRoZSBydWxlcyB0byBnZW5lcmF0ZSBiaW5kaW5ncyBmcm9t
IElETCBmaWxlcy4gTm90ZSB0aGF0IHRoZXJlIGFyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1Nzg0Njdh
Y2FmNzAxMGZmMzY4ZTgwMGYzZDdkNzBiODIxM2JiNDMyLi44ZjUxOGU1MmQ1MDA1OWMzMWFmOGEw
NDc3YmIxZDk3ZDllMzg5OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjE1LDYgKzYxNSw3IEBAIGJp
bmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViWFJWaWV3
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTE3ODgsNiArMTc4OSw3IEBAIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKIHBhZ2UvU2VjdXJp
dHlQb2xpY3kuY3BwCiBwYWdlL1NldHRpbmdzQmFzZS5jcHAKK3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2NrZXRQcm92aWRl
ci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNTI1MTBjMzA4MThmMGNhOTE2
YTg4NDM3N2QyMjRhMWFiYTc5NWI4NS4uYjlhMjBmMjI4YjgwMWM1YWQwNzcwYWM3NmU0ODViNjRl
NWZiY2U3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIkpTUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTUmVt
b3RlRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2lu
Y2x1ZGUgIkpTV3JpdGFibGVTdHJlYW0uaCIKQEAgLTI2Niw2ICsyNjgsOCBAQCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4odGhp
cyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNSZW1vdGVE
T01XaW5kb3dCYXNlPih2bSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlu
aGVyaXRzPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+KHZtKCkpKQorICAgICAgICByZXR1
cm4ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPih0aGlzKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmIChpbmhlcml0czxKU1dvcmtlckdsb2JhbFNj
b3BlQmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmIChp
bmhlcml0czxKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U+KHZtKCkpKQpAQCAtNTA2LDYgKzUxMCw4
IEBAIHN0YXRpYyBTY3JpcHRNb2R1bGVMb2FkZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+
bW9kdWxlTG9hZGVyKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2bSkp
CisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CiAgICAgaWYgKGds
b2JhbE9iamVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlPih2bSkpCkBAIC01NzAsNiArNTc2LDI1IEBAIEpTQzo6SlNPYmplY3Qq
IEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cyhKU0M6OkpTCiAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+
dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwogfQog
CitKU0M6OkpTR2xvYmFsT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVh
bG1HbG9iYWxPYmplY3QoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3sKKyAgICBhdXRvIGRvbUdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlQoZG9tR2xvYmFsT2JqZWN0KTsKKyAg
ICBhdXRvIHNjb3BlID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvbUdsb2Jh
bE9iamVjdCwgc2NyaXB0TW9kdWxlTG9hZGVyKGRvbUdsb2JhbE9iamVjdCkpLnJlbGVhc2VOb25O
dWxsKCk7CisKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBKU0M6OmpzTnVsbCgpKTsKKyAgICBh
dXRvIHByb3h5U3RydWN0dXJlID0gSlNQcm94eTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRy
LCBKU0M6OmpzTnVsbCgpKTsKKyAgICBhdXRvIHByb3h5ID0gSlNQcm94eTo6Y3JlYXRlKHZtLCBw
cm94eVN0cnVjdHVyZSk7CisgICAgYXV0byB3cmFwcGVyID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlOjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShzY29wZSksIHByb3h5KTsKKworICAg
IHdyYXBwZXItPnNldFByb3RvdHlwZURpcmVjdCh2bSwgd3JhcHBlci0+b2JqZWN0UHJvdG90eXBl
KCkpOworICAgIHByb3h5LT5zZXRUYXJnZXQodm0sIHdyYXBwZXIpOworCisgICAgcmV0dXJuIHdy
YXBwZXI7Cit9CisKKwogSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsK
ICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZjRkODY1ZDlhMDMyN2I4YWQ5NGY3YjBk
ZjkzY2ZjMGQ1N2NlOGI1OC4uMjI3OTJhMDlhYTBiMDFmYTA5NmJhYmJhYzNiNTdiOGI2OWExNmQ1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5o
CkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIERPTUd1YXJkZWRPYmplY3Q7CiBjbGFzcyBFdmVudDsK
IGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Citj
bGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CiAKIHVzaW5nIEpTRE9NU3RydWN0dXJlTWFwID0gSGFz
aE1hcDxjb25zdCBKU0M6OkNsYXNzSW5mbyosIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6U3RydWN0
dXJlPj47CiB1c2luZyBET01HdWFyZGVkT2JqZWN0U2V0ID0gSGFzaFNldDxET01HdWFyZGVkT2Jq
ZWN0Kj47CkBAIC04Niw2ICs4Nyw3IEBAIHB1YmxpYzoKICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1
bmN0aW9ucyYgYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50
ZXJuYWxGdW5jdGlvbnM7IH0KIAogICAgIHN0YXRpYyB2b2lkIHJlcG9ydFVuY2F1Z2h0RXhjZXB0
aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4Y2VwdGlvbiopOworICAgIHN0
YXRpYyBKU0M6OkpTR2xvYmFsT2JqZWN0KiBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdChK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogCiAgICAgdm9pZCBjbGVhckRPTUd1YXJk
ZWRPYmplY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwCmluZGV4IGY4OTFlNzZlODY1YzZiMWZhNWMzM2JhNDUzOGExMjk4NjZm
ODM0MjEuLjliMmI3ZWQ0ZjA0YWQxZTA2NDVmODhjOGEyYjZmMzJmNTdlNGUyZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtOTUsNiAr
OTUsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwKICAgICBudWxscHRyLAog
I2VuZGlmCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiBKU0RPTVdp
bmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWZQdHI8RE9NV2luZG93PiYmIHdpbmRvdywgSlNXaW5kb3dQcm94eSogcHJveHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcApp
bmRleCBhYjNmYWM2NzEzMDRmOGM3YmNhNTkwMzAzMmVkNmM2MGJkYzFmYTRiLi5hNGQ3MTVmNzA4
YzYwYzAyODY1NzljZjE1OTAzNTc3MDBiN2Q1NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAKQEAgLTUzLDYgKzUzLDcg
QEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNSZW1vdGVET01XaW5kb3dCYXNlOjpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0KICAgICBudWxscHRyLCAvLyBkZWZhdWx0TGFuZ3Vh
Z2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0ciwgLy8gaW5z
dGFudGlhdGVTdHJlYW1pbmcKKyAgICBudWxscHRyLCAvLyBkZXJpdmVTaGFkb3dSZWFsbUdsb2Jh
bE9iamVjdAogfTsKIAogSlNSZW1vdGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURPTVdpbmRvd0Jh
c2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFJlbW90ZURPTVdpbmRvdz4m
JiB3aW5kb3csIEpTV2luZG93UHJveHkqIHByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMWFiNjBmZmViNmQyYjU0OWIyZmVmZGQxM2E5Y2ZjMGZlZGQ3NWJjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCIKKworI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgorI2luY2x1ZGUgIkpTTWljcm90YXNrQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNs
dWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVz
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNQcm94eS5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL01pY3JvdGFzay5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK2NvbnN0IENsYXNzSW5m
byBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUds
b2JhbFNjb3BlIiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSkgfTsKKwor
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKKyAgICAmc3VwcG9ydHNSaWNoU291cmNl
SW5mbywKKyAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LAorICAgICZqYXZhU2NyaXB0UnVudGlt
ZUZsYWdzLAorICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAorICAgICZzaG91bGRJbnRl
cnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCisgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAorICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAorICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCisgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKKyAgICAmcmVwb3J0VmlvbGF0aW9u
Rm9yVW5zYWZlRXZhbCwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgJmNvbXBpbGVTdHJlYW1pbmcsCisgICAgJmluc3Rh
bnRpYXRlU3RyZWFtaW5nLAorI2Vsc2UKKyAgICBudWxscHRyLAorICAgIG51bGxwdHIsCisjZW5k
aWYKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QsCit9OworCitKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0m
IHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxT
Y29wZT4mJiBpbXBsKQorICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgbm9y
bWFsV29ybGQodm0pLCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKKyAgICAsIG1fd3JhcHBl
ZChXVEZNb3ZlKGltcGwpKQoreworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpCit7CisgICAgbV9wcm94
eS5zZXQodm0sIHRoaXMsIHByb3h5KTsKKyAgICBtX3dyYXBwZWQtPm1fd3JhcHBlciA9IEpTQzo6
V2Vhayh0aGlzKTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgbV9wcm94eS5nZXQoKSk7
CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVmlzaXRvcj4KK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGls
ZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgaW5mbygpKTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZp
c2l0b3IpOworICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fcHJveHkpOworfQorCitE
RUZJTkVfVklTSVRfQ0hJTERSRU4oSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSk7CisKK1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBpbmN1YmF0aW5nKCktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKworY29uc3QgSlNET01HbG9iYWxPYmplY3QqIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmluY3ViYXRpbmcoKSBjb25zdAoreworICAgIGF1
dG8gaW5jdWJhdGluZ1dyYXBwZXIgPSBtX3dyYXBwZWQtPm1faW5jdWJhdGluZ1dyYXBwZXIuZ2V0
KCk7CisgICAgQVNTRVJUKGluY3ViYXRpbmdXcmFwcGVyKTsKKyAgICByZXR1cm4gaW5jdWJhdGlu
Z1dyYXBwZXI7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCit7CisgICAgc3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZSo+KGNlbGwpLT5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp+SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZSgpOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKCktPnN1cHBvcnRzUmljaFNvdXJjZUluZm8ob2JqKTsKK30KKworYm9v
bCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29u
c3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxjb25z
dCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJhdGluZygpOwor
ICAgIHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnNob3VsZEludGVycnVw
dFNjcmlwdChvYmopOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9i
amVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKCktPnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQo
b2JqKTsKK30KKworUnVudGltZUZsYWdzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6Omph
dmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICBhdXRvIG9iaiA9IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4o
b2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPmphdmFTY3JpcHRSdW50aW1lRmxhZ3Mob2JqKTsKK30KKworSlNDOjpTY3JpcHRF
eGVjdXRpb25TdGF0dXMgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0RXhlY3V0
aW9uU3RhdHVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU09iamVj
dCogb3duZXIpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2JqLT5n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zY3JpcHRFeGVjdXRpb25TdGF0dXMob2JqLCBvd25l
cik7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cmVwb3J0VmlvbGF0
aW9uRm9yVW5zYWZlRXZhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7Cisg
ICAgYXV0byBvYmogPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGdsb2Jh
bE9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
KCktPnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwob2JqKTsKK30KKwordm9pZCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wKEpTR2xvYmFs
T2JqZWN0JiBvYmplY3QsIFJlZjxKU0M6Ok1pY3JvdGFzaz4mJiB0YXNrKQoreworICAgIGF1dG8g
b2JqID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPigmb2JqZWN0KS0+aW5j
dWJhdGluZygpOworICAgIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+cXVldWVNaWNy
b3Rhc2tUb0V2ZW50TG9vcCgqb2JqLCBXVEZNb3ZlKHRhc2spKTsKK30KKworSlNWYWx1ZSB0b0pT
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCos
IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHJlYWxtR2xvYmFsU2NvcGUpCit7CisgICAgcmV0dXJu
IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgcmVhbG1HbG9iYWxTY29wZSk7Cit9CisKK0pTVmFs
dWUgdG9KUyhKU0dsb2JhbE9iamVjdCosIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHJlYWxtR2xv
YmFsU2NvcGUpCit7CisgICAgQVNTRVJUKHJlYWxtR2xvYmFsU2NvcGUud3JhcHBlcigpKTsKKyAg
ICByZXR1cm4gJnJlYWxtR2xvYmFsU2NvcGUud3JhcHBlcigpLT5wcm94eSgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDljMGE2NGQ2
YjI2YzZlN2ViYWMwNzZlY2FkYTFjZGQ4YTM1MGVhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaApAQCAt
MCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29w
ZTsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CitwdWJsaWM6CisgICAgdXNp
bmcgQmFzZSA9IEpTRE9NR2xvYmFsT2JqZWN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpT
Qzo6U3Vic3BhY2VBY2Nlc3M+CisgICAgc3RhdGljIHZvaWQgc3Vic3BhY2VGb3IoSlNDOjpWTSYp
IHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCisgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0M6OkpTQ2VsbCopOworCisgICAgREVDTEFSRV9JTkZPOworCisgICAgU2hhZG93UmVh
bG1HbG9iYWxTY29wZSYgd3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuICptX3dyYXBwZWQ7IH0KKwor
ICAgIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1YmF0aW5nKCkgY29uc3Q7CisgICAgSlNE
T01HbG9iYWxPYmplY3QqIGluY3ViYXRpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjb25zdF9jYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UqPih0aGlzKS0+aW5jdWJhdGluZygpKTsKKyAgICB9CisKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisKKyAg
ICBzdGF0aWMgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlOworCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJy
dXB0U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYm9vbCBz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgSlNDOjpSdW50aW1lRmxhZ3MgamF2YVNjcmlwdFJ1bnRpbWVGbGFn
cyhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6U2NyaXB0RXhl
Y3V0aW9uU3RhdHVzIHNjcmlwdEV4ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU09iamVjdCopOworICAgIHN0YXRpYyB2b2lkIHF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3AoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlZjxKU0M6Ok1pY3JvdGFzaz4mJik7CisgICAgc3Rh
dGljIHZvaWQgcmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisKK3Byb3RlY3RlZDoKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKEpTQzo6
Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTsKKworICAg
IERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGU+IG1fd3JhcHBlZDsKK307CisKKy8vIFJldHVybnMgYSBKU1dvcmtlckds
b2JhbFNjb3BlIG9yIGpzTnVsbCgpCisvLyBBbHdheXMgaWdub3JlcyB0aGUgZXhlY1N0YXRlIGFu
ZCBwYXNzZWQgZ2xvYmFsT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIGlzIGl0c2VsZiBh
IGdsb2JhbE9iamVjdCBhbmQgd2lsbCBhbHdheXMgdXNlIGl0cyBvd24gcHJvdG90eXBlIGNoYWlu
LgorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYpOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHNjb3BlKSB7IHJldHVy
biBzY29wZSA/IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCAqc2NvcGUp
IDogSlNDOjpqc051bGwoKTsgfQorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlKiBzY29wZSkgeyByZXR1cm4gc2NvcGUgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3Qs
ICpzY29wZSkgOiBKU0M6OmpzTnVsbCgpOyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcAppbmRleCA1MzlhYTFkYzEyYWZjZmQ0YjFlZTQ2ZDNlZmQxNDZjM2M4NDAzMzQxLi4w
YzU0NzIxNzRkMmY4ZDRiNThjMjU1NzBmOGIzOTU3Y2U3YTNjYTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBA
IC03MCw2ICs3MCw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlCiAgICAgbnVsbHB0ciwKICAg
ICBudWxscHRyLAogI2VuZGlmCisgICAgZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QsCiB9
OwogCiBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UoSlND
OjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxXb3JrZXJHbG9iYWxT
Y29wZT4mJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggM2RjNTQ5YzEwMzk1ZGI5YTg1NzlhZWJj
YTg1NDZlYmU4Y2NiYWEyYy4uN2Y0Yjk2M2MxOThkNzhhYWRkZGI5MjllNWMwYjgxYmEzMzJlNDdj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2UuY3BwCkBAIC02Niw2ICs2Niw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RU
YWJsCiAgICAgbnVsbHB0ciwKICAgICBudWxscHRyLAogI2VuZGlmCisgICAgZGVyaXZlU2hhZG93
UmVhbG1HbG9iYWxPYmplY3QsCiB9OwogCiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OkpTV29y
a2xldEdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgUmVmUHRyPFdvcmtsZXRHbG9iYWxTY29wZT4mJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggYWQ5M2NlMDkwMmM1
N2IwNTU0ODRiYjU0MzQ0MTczODkzMmQ0NmJhMy4uZWUzYjUzOGQ3OTEzZGQ3NjZmNWU2YjI2MmM3
MjQ3MzNiNmQ4YWZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0TW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgi
CiAjaW5jbHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJDb3JlSlND
bGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCkBAIC03
NCw2ICs3NSwxMyBAQCBTY3JpcHRNb2R1bGVMb2FkZXI6On5TY3JpcHRNb2R1bGVMb2FkZXIoKQog
ICAgICAgICBsb2FkZXItPmNsZWFyQ2xpZW50KCk7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxTY3Jp
cHRNb2R1bGVMb2FkZXI+IFNjcmlwdE1vZHVsZUxvYWRlcjo6c2hhZG93UmVhbG1Mb2FkZXIoSlND
OjpKU0dsb2JhbE9iamVjdCogcmVhbG1HbG9iYWwpIGNvbnN0Cit7CisgICAgYXV0byBsb2FkZXIg
PSBXVEY6Om1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPihtX2NvbnRleHQsIG1fb3duZXJU
eXBlKTsKKyAgICBsb2FkZXItPm1fc2hhZG93UmVhbG1HbG9iYWwgPSByZWFsbUdsb2JhbDsKKyAg
ICByZXR1cm4gbG9hZGVyOworfQorCiBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1Zh
bHVlIGltcG9ydGVyTW9kdWxlS2V5KQogewogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5p
c1N5bWJvbCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CkBAIC0yNDQsNyAr
MjUyLDkgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEoKICAgICBpZiAoIXNvdXJjZVVSTC5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0
LCBzY29wZSwgIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIl9zKTsKIAotICAgIGlmICht
X293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgaWYgKG1fc2hhZG93UmVh
bG1HbG9iYWwpIHsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBtb2R1bGVSZWNv
cmQtPmV2YWx1YXRlKG1fc2hhZG93UmVhbG1HbG9iYWwsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9k
ZSkpOworICAgIH0gZWxzZSBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkg
ewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0
KS5mcmFtZSgpKQogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmcmFtZS0+
c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkLCBhd2FpdGVk
VmFsdWUsIHJlc3VtZU1vZGUpKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBlODJhOGJiNDMzNzFlYTZjYWI4
ZmNmYTg0MjRkODdlYjNjOTg2MzE4Li4zOWM4ZGQ1YTUxZDBkYTk1ZjIzNzU1OWJlOWYwZDMxZWUy
ZGMzNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2NyaXB0TW9k
dWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBPd25lclR5cGUpOwogICAgIH5TY3Jp
cHRNb2R1bGVMb2FkZXIoKTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRNb2R1bGVMb2Fk
ZXI+IHNoYWRvd1JlYWxtTG9hZGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIHJlYWxtR2xvYmFsKSBj
b25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBt
X2NvbnRleHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpT
Qzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIp
OwpAQCAtNzMsNiArNzUsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBVUkw+IG1f
cmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXA7CiAgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0
TG9hZGVyPj4gbV9sb2FkZXJzOwogICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKKyAgICBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBtX3NoYWRvd1JlYWxtR2xvYmFsIHsgbnVsbHB0ciB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAppbmRleCA2ZDQ2YjE1NDM1NjE2NTI0NTAxNzliMDc0
N2NkYjg3NGIyZWRlZDcxLi40OWIwMmJmMGU3NjAzMGIwNmZkNTlhNzZmZTU2MDU0NzFhMmY2YWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUg
IkpTV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC02
OCw2ICs2OSw3IEBAIEpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YShWTSYgdm0pCiAgICAg
LCBtX2hlYXBDZWxsVHlwZUZvckpTUmVtb3RlRE9NV2luZG93KEpTQzo6SXNvSGVhcENlbGxUeXBl
OjpBcmdzPEpTUmVtb3RlRE9NV2luZG93PigpKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1dv
cmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTV29ya2VyR2xvYmFs
U2NvcGU+KCkpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4o
KSkKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTQzo6
SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZT4oKSkKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlPigpKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggODAzNjZhMGM3ZjcyMjAyM2Y3OTM4MTRhZjZl
YTU3MTFkYTk4NDc3Ny4uMzdjOWExZTY2NGRmODVmYmJkZTYzMzE2OTExNDhjN2M2MjY2ODdhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEu
aApAQCAtMTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBt
X2hlYXBDZWxsVHlwZUZvckpTUmVtb3RlRE9NV2luZG93OwogICAgIEpTQzo6SXNvSGVhcENlbGxU
eXBlIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrZXJHbG9iYWxTY29wZTsKICAgICBKU0M6Oklzb0hl
YXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU7Cisg
ICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGU7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIEpTQzo6SXNvSGVhcENl
bGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggMWE3MmI1NGI3YWZiMzA3OWM1NTAwN2E2OGMwODgyYzI0MmE4OTU4Yy4uOTcx
MzUxMjdhZTFmZWQ4MDEyM2JiNmNkZGFmYTY4MmRiOTM0MTE1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc2MCw3ICs3
NjAsNyBAQCBzdWIgR2V0Q3VzdG9tSXNSZWFjaGFibGUKIHN1YiBJc0RPTUdsb2JhbE9iamVjdAog
ewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKLSAgICByZXR1cm4gJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJSZW1v
dGVET01XaW5kb3ciIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJm
YWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRl
cmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpIHx8ICRpbnRlcmZhY2UtPnR5
cGUtPm5hbWUgZXEgIlRlc3RHbG9iYWxPYmplY3QiOworICAgIHJldHVybiAkaW50ZXJmYWNlLT50
eXBlLT5uYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlJl
bW90ZURPTVdpbmRvdyIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRl
cmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0lu
dGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikgfHwgJGludGVyZmFjZS0+
dHlwZS0+bmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiVGVzdEdsb2JhbE9iamVjdCI7CiB9CiAKIHN1YiBTaG91bGRVc2VHbG9iYWxP
YmplY3RQcm90b3R5cGUKQEAgLTc3NSw2ICs3NzUsMTMgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9i
amVjdFByb3RvdHlwZQogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsK
IH0KIAorc3ViIFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlCit7CisgICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OworCisgICAgcmV0dXJuICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2Jq
ZWN0KCkgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29w
ZSI7Cit9CisKIHN1YiBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIKIHsKICAgICBteSAoJGludGVyZmFj
ZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbmRleEV4cHJlc3Npb24pID0gQF87CkBAIC0y
ODcxLDcgKzI4NzgsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwotICAgIH0gZWxzaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFs
U2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwg
IldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEg
IlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVy
ZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0
ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4m
JiBpbXBsLCBKU0M6OkpTUHJveHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAge1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAg
ICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNz
TmFtZT4odm0pKSAke2NsYXNzTmFtZX0odm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSk7XG4i
KTsKQEAgLTI5MTMsNyArMjkyMCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICRzdHJ1Y3R1
cmVGbGFnc3siSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBKU0M6OkltcGxlbWVudHNEZWZh
dWx0SGFzSW5zdGFuY2UifSA9IDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAg
ICAgICAgIAogICAgICMgUHJvdG90eXBlCi0gICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmpl
Y3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Qp
IHsKKyAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNl
KSB8fCBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVh
dGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogcHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpO1xuIik7CiAgICAgfQpAQCAtMzE3MCw3ICsz
MTc3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBDb25zdHJ1Y3RvcgogICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3Rl
RE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05h
bWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPCRpbXBsVHlwZT4mJiwgSlNXaW5kb3dQ
cm94eSopO1xuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJm
YWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5J
bmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAg
ICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwg
JGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9i
YWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAkY2xhc3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1wbFR5cGU+
JiYpO1xuIik7CiAgICAgfSBlbHNpZiAoIU5lZWRzSW1wbGVtZW50YXRpb25DbGFzcygkaW50ZXJm
YWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpO1xuXG4iKTsKQEAgLTMxODAsNyArMzE4
Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
JiwgSlNXaW5kb3dQcm94eSopO1xuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2Rl
R2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNj
b3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9i
YWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJv
eHkqKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7XG4iKTsKQEAgLTM5NTksNiArMzk2Niw4
IEBAIHN1YiBHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ0ZvckV4cG9zZWQK
ICAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCIg
LiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1
bWVudCgpIik7CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIldvcmtlciIpIHsKICAgICAgICAg
cHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFs
T2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJHbG9iYWxT
Y29wZSgpIik7CisgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIlNoYWRvd1JlYWxtIikgeworICAg
ICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRn
bG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJXb3JrbGV0Iikg
ewogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
IiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dv
cmtsZXRHbG9iYWxTY29wZSgpIik7CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIkF1ZGlvV29y
a2xldCIpIHsKQEAgLTQ0OTgsNyArNDUwNyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICRoYXNoU2l6ZSsrOwogICAgIH0KIAotICAgIGlmICghJGludGVyZmFjZS0+aXNO
YW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90
eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIG15ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5ID0g
IUlzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwogCiAgICAgICAgICRvYmplY3QtPkdlbmVy
YXRlSGFzaFRhYmxlKCRjbGFzc05hbWUsICRoYXNoTmFtZSwgJGhhc2hTaXplLCBcQGhhc2hLZXlz
LCBcQGhhc2hTcGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9u
YWxzLCBcJXJlYWRXcml0ZUNvbmRpdGlvbmFscywgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpOwpA
QCAtNDUxMSw3ICs0NTIwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pO1xuIik7CiAg
ICAgfQogCi0gICAgaWYgKFByb3RvdHlwZUhhc1N0YXRpY1Byb3BlcnR5VGFibGUoJGludGVyZmFj
ZSkgJiYgIUlzR2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpICYmICEkaW50ZXJmYWNlLT5pc05h
bWVzcGFjZU9iamVjdCkgeworICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
KCRpbnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAmJiAhU2hvdWxk
VXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCAke2NsYXNzTmFtZX06
OmluZm8oKSwgJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTtcbiIpOwog
CiAgICAgICAgIG15IEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBAcnVudGltZUVuYWJsZWRP
cGVyYXRpb25zOwpAQCAtNDU5Miw3ICs0NjAxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KIAogICAgIGFzc2VydCgiSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCkg
cmVxdWlyZXMgc3RyaW5ncyB0d28gb3IgbW9yZSBjaGFyYWN0ZXJzIGxvbmciKSBpZiBsZW5ndGgo
JHZpc2libGVJbnRlcmZhY2VOYW1lKSA8IDI7CiAKLSAgICBpZiAoISRpbnRlcmZhY2UtPmlzTmFt
ZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKCFTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlw
ZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0NfVE9f
U1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAgICAgfQpAQCAtNDYyNCw3ICs0NjMzLDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFy
ZW50Q2xhc3NOYW1lKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCksIHByb3h5KVxuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRl
cmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewor
ICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8
fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckds
b2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZh
Y2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBBZGRJbmNsdWRlc0ZvckltcGxl
bWVudGF0aW9uVHlwZUluSW1wbCgkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBs
KSlcbiIpOwpAQCAtNDY0NSw3ICs0NjU0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU1dpbmRvd1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3Bl
IikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3Jr
bGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2Uo
JGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTUHJveHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKHZtLCBwcm94eSk7XG5cbiIpOwpAQCAtNDc0NSw3ICs0NzU0LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2bS5oZWFwLnJlcG9y
dEV4dHJhTWVtb3J5QWxsb2NhdGVkKHdyYXBwZWQoKS5tZW1vcnlDb3N0KCkpO1xuIikgaWYgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UmVwb3J0RXh0cmFNZW1vcnlDb3N0fTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKLSAgICB1bmxlc3MgKFNob3VsZFVzZUds
b2JhbE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5pc05hbWVzcGFj
ZU9iamVjdCkgeworICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRp
bnRlcmZhY2UpIHx8IFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6
Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdClc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBpZiAoJGlu
dGVyZmFjZS0+cGFyZW50VHlwZSkgewpAQCAtNzUwNyw3ICs3NTE2LDcgQEAgc3ViIEdlbmVyYXRl
UHJvdG90eXBlRGVjbGFyYXRpb24KIHsKICAgICBteSAoJG91dHB1dEFycmF5LCAkY2xhc3NOYW1l
LCAkaW50ZXJmYWNlKSA9IEBfOwogCi0gICAgcmV0dXJuIGlmICRpbnRlcmZhY2UtPmlzTmFtZXNw
YWNlT2JqZWN0OworICAgIHJldHVybiBpZiBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlw
ZSgkaW50ZXJmYWNlKTsKIAogICAgIG15ICRwcm90b3R5cGVDbGFzc05hbWUgPSAiJHtjbGFzc05h
bWV9UHJvdG90eXBlIjsKIApAQCAtNzc4Myw3ICs3NzkyLDcgQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzCiAgICAgaWYgKCEkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5j
dGlvbiBhbmQgJGludGVyZmFjZS0+cGFyZW50VHlwZSkgewogICAgICAgICBteSAkcGFyZW50Q2xh
c3NOYW1lID0gIkpTIiAuICRpbnRlcmZhY2UtPnBhcmVudFR5cGUtPm5hbWU7CiAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gJHtwYXJlbnRDbGFzc05hbWV9OjpnZXRDb25z
dHJ1Y3Rvcih2bSwgJmdsb2JhbE9iamVjdCk7XG4iKTsKLSAgICB9IGVsc2lmICgkaW50ZXJmYWNl
LT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIH0gZWxzaWYgKFNob3VsZFVzZU9yZGluYXJ5T2Jq
ZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8
SmF2YVNjcmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmg+Iik7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBVTlVTRURfUEFSQU0odm0pO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICByZXR1cm4gZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpO1xuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3Mt
aWRscy5wbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxz
LnBsCmluZGV4IDViODkzMTNmZTVjYWVmYjg5MTJmYjQzNmYxNDc2ODJmMDQ3NTc3YmEuLjc0MWE1
OGIxOWYxMjhkZTRmMDliMWNiNTY2Y2Y1MWE5MWVkN2Y4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCkBAIC00NCw2ICs0NCw3
IEBAIG15ICRpc29TdWJzcGFjZXNIZWFkZXJGaWxlOwogbXkgJGNvbnN0cnVjdG9yc0hlYWRlckZp
bGU7CiBteSAkd2luZG93Q29uc3RydWN0b3JzRmlsZTsKIG15ICR3b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU7CitteSAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGU7CiBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkg
JHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwpAQCAtNjUsNyArNjYsOCBAQCBteSBAc3Vw
cG9ydGVkR2xvYmFsQ29udGV4dHMgPSAoCiAgICAgIkRlZGljYXRlZFdvcmtlciIsCiAgICAgIlNl
cnZpY2VXb3JrZXIiLAogICAgICJQYWludFdvcmtsZXQiLAotICAgICJBdWRpb1dvcmtsZXQiCisg
ICAgIkF1ZGlvV29ya2xldCIsCisgICAgIlNoYWRvd1JlYWxtIiwKICk7CiAKICMgVG9nZ2xlIHRo
aXMgdG8gdmFsaWRhdGUgdGhhdCB0aGUgZmFzdCByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgInBh
cnNpbmciIHVzZWQKQEAgLTgyLDYgKzg0LDcgQEAgR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBc
JGRlZmluZXMsCiAgICAgICAgICAgICdjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlPXMnID0+IFwkY29u
c3RydWN0b3JzSGVhZGVyRmlsZSwKICAgICAgICAgICAgJ3dpbmRvd0NvbnN0cnVjdG9yc0ZpbGU9
cycgPT4gXCR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnd29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAorICAgICAgICAgICAnc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGU9cycgPT4gXCRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAg
ICAgICAgJ2RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBc
JGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAg
J3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnc2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2hhcmVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlLApAQCAtOTgsNiArMTAxLDcgQEAgZGllKCdNdXN0IHNwZWNp
ZnkgI2RlZmluZSBtYWNyb3MgdXNpbmcgLS1kZWZpbmVzLicpIHVubGVzcyBkZWZpbmVkKCRkZWZp
bmVzKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHN1cHBsZW1lbnRhbERlcGVuZGVu
Y3lGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td2luZG93
Q29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd2luZG93Q29uc3RydWN0b3JzRmls
ZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVz
aW5nIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRl
ZmluZWQoJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVz
dCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRkZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZp
bGUgdXNpbmcgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVu
bGVzcyBkZWZpbmVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsK
IGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc2hhcmVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzaGFyZWRXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwpAQCAtMTEzLDYgKzExNyw3IEBAICRpc29TdWJz
cGFjZXNIZWFkZXJGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRpc29TdWJzcGFjZXNIZWFkZXJG
aWxlKTsKICRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRjb25z
dHJ1Y3RvcnNIZWFkZXJGaWxlKTsKICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0
aElmTmVlZGVkKCR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKICR3b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSk7Ciskc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
PSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKTsKICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3
aW5QYXRoSWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBh
dGhJZk5lZWRlZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAk
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xNTQsNiArMTU5LDcgQEAg
bXkgJWRpY3Rpb25hcnlEZXBlbmRlbmNpZXM7CiBteSAlc3VwcGxlbWVudGFsczsKIG15ICR3aW5k
b3dDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNDb2RlID0gIiI7CitteSAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
PSAiIjsKIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAi
IjsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBt
eSAkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CkBAIC0yNzIs
NiArMjc4LDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5h
bWVIYXNoKSB7CiAgICAgICAgICAgICAgICAgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgLj0gJHdp
bmRvd0FsaWFzZXMgaWYgJHdpbmRvd0FsaWFzZXM7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xv
YmFsQ29udGV4dCBlcSAiV29ya2VyIikgewogICAgICAgICAgICAgICAgICR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2hhZG93UmVhbG0iKSB7CisgICAgICAgICAgICAgICAg
JHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2Rl
OwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkRlZGljYXRlZFdvcmtl
ciIpIHsKICAgICAgICAgICAgICAgICAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2Jh
bENvbnRleHQgZXEgIlNlcnZpY2VXb3JrZXIiKSB7CkBAIC0zMDMsNiArMzExLDcgQEAgZm9yZWFj
aCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNoKSB7CiAjIEdlbmVy
YXRlIHBhcnRpYWwgaW50ZXJmYWNlcyBmb3IgQ29uc3RydWN0b3JzLgogR2VuZXJhdGVQYXJ0aWFs
SW50ZXJmYWNlKCJET01XaW5kb3ciLCAkd2luZG93Q29uc3RydWN0b3JzQ29kZSwgJHdpbmRvd0Nv
bnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJXb3JrZXJHbG9iYWxT
Y29wZSIsICR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOworR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIiwgJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2Rl
LCAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0
aWFsSW50ZXJmYWNlKCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIsICRkZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUiLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSwgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQ
YXJ0aWFsSW50ZXJmYWNlKCJTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSIsICRzaGFyZWRXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kOGVlMzdkNDFkZGJjZmQ3M2EyM2MyYTY5ZGMzM2VhOGNmYmRjZGQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKQEAgLTAsMCArMSwyMDIgQEAKKy8qCisgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMg
ZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBN
T0RJRlkhCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5oIgorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
RE9NSXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKKyNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0
YWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJK
U0RPTUdsb2JhbE9iamVjdElubGluZXMuaCIKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgorI2luY2x1ZGUgIkpTRXhwb3NlZFN0YXIuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERh
dGEuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwQW5hbHl6ZXIuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9PYmplY3RQcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90Vmlz
aXRvck1hY3Jvcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5o
PgorI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0
aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1
c2luZyBuYW1lc3BhY2UgSlNDOworCisvLyBBdHRyaWJ1dGVzCisKK3N0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9F
eHBvc2VkU3RhckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3IpOworCit1c2luZyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvciA9IEpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZT47
CisKKy8qIEhhc2ggdGFibGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlSW5kZXhbNV0gPSB7CisgICAgeyAtMSwg
LTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAwLCA0IH0sCisg
ICAgeyAxLCAtMSB9LAorfTsKKworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlVGFibGVWYWx1ZXNbXSA9Cit7CisgICAgeyAiRXhwb3NlZFN0YXIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3RhckNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAorICAgIHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzU2hhZG93
UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
Cit9OworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRh
YmxlID0geyAyLCAzLCB0cnVlLCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmluZm8oKSwgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVWYWx1ZXMsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZVRhYmxlSW5kZXggfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsKKwordGVtcGxhdGU8
PiBKU1ZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKHZtKTsKKyAgICByZXR1cm4gZ2xvYmFsT2Jq
ZWN0Lm9iamVjdFByb3RvdHlwZSgpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIEpT
U3RyaW5nKiBuYW1lU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiU2hhZG93UmVhbG1H
bG9iYWxTY29wZSJfcyk7CisgICAgbV9vcmlnaW5hbE5hbWUuc2V0KHZtLCB0aGlzLCBuYW1lU3Ry
aW5nKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIG5hbWVTdHJp
bmcsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJv
dG90eXBlLCBnbG9iYWxPYmplY3QuZ2V0UHJvdG90eXBlRGlyZWN0KHZtKSwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpOworfQorCitjb25zdCBDbGFzc0lu
Zm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgJkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSkgfTsK
KworSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYg
aW1wbCkKKyAgICA6IEpTRE9NV3JhcHBlcjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPih2bSwgc3Ry
dWN0dXJlLCBXVEZNb3ZlKGltcGwpKQoreworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpOworCisgICAgc3RhdGljX2Fzc2VydCghc3RkOjpp
c19iYXNlX29mPEFjdGl2ZURPTU9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZT46OnZhbHVl
LCAiSW50ZXJmYWNlIGlzIG5vdCBtYXJrZWQgYXMgW0FjdGl2ZURPTU9iamVjdF0gZXZlbiB0aG91
Z2ggaW1wbGVtZW50YXRpb24gY2xhc3Mgc3ViY2xhc3NlcyBBY3RpdmVET01PYmplY3QuIik7CisK
K30KKworSlNWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZN
JiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1cm4g
Z2V0RE9NQ29uc3RydWN0b3I8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3Is
IERPTUNvbnN0cnVjdG9ySUQ6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+KHZtLCAqanNDYXN0PGNv
bnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7Cit9CisKK3ZvaWQgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQoreworICAgIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZSo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPkpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6fkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworfQorCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQoreworICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKK30KKwor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3Rh
ckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIHJldHVybiBKU0V4cG9zZWRTdGFyOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwor
fQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4
cG9zZWRTdGFyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkp
Cit7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+Ojpn
ZXQ8anNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOworfQorCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQoreworICAgIFVO
VVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgJnRoaXNPYmplY3QpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZT46OmdldDxqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRyaWJ1dGVOYW1lKTsKK30KKworSlNDOjpJc29TdWJzcGFj
ZSogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0p
Cit7CisgICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpOworICAgIGF1dG8mIHNwYWNlcyA9IGNsaWVudERhdGEuc3Vic3BhY2Vz
KCk7CisgICAgaWYgKGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmdldCgpKQorICAgICAgICByZXR1cm4gc3BhY2U7CisgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JTaGFkb3dSZWFsbUdsb2JhbFNjb3BlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZv
ckpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKKyAg
ICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29w
ZS5nZXQoKTsKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCitJR05P
UkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKKyAgICB2b2lkICgqbXlW
aXNpdE91dHB1dENvbnN0cmFpbnQpKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpID0g
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzOworICAgIHZv
aWQgKCpqc0NlbGxWaXNpdE91dHB1dENvbnN0cmFpbnQpKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90
VmlzaXRvciYpID0gSlNDOjpKU0NlbGw6OnZpc2l0T3V0cHV0Q29uc3RyYWludHM7CisgICAgaWYg
KG15VmlzaXRPdXRwdXRDb25zdHJhaW50ICE9IGpzQ2VsbFZpc2l0T3V0cHV0Q29uc3RyYWludCkK
KyAgICAgICAgY2xpZW50RGF0YS5vdXRwdXRDb25zdHJhaW50U3BhY2VzKCkuYXBwZW5kKHNwYWNl
KTsKK0lHTk9SRV9XQVJOSU5HU19FTkQKK0lHTk9SRV9XQVJOSU5HU19FTkQKKyAgICByZXR1cm4g
c3BhY2U7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjphbmFseXplSGVhcChK
U0NlbGwqIGNlbGwsIEhlYXBBbmFseXplciYgYW5hbHl6ZXIpCit7CisgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihjZWxsKTsKKyAgICBhbmFs
eXplci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAg
ICBhbmFseXplci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CisgICAgQmFzZTo6YW5hbHl6
ZUhlYXAoY2VsbCwgYW5hbHl6ZXIpOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIEFic3RyYWN0U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNo
YXIqKiByZWFzb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CisgICAgVU5VU0VEX1BB
UkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lcjo6ZmluYWxpemUoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCit7CisgICAgYXV0
byoganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlID0gc3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOworICAgIGF1dG8mIHdvcmxkID0g
KnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOworICAgIHVuY2FjaGVXcmFw
cGVyKHdvcmxkLCAmanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLT53cmFwcGVkKCksIGpzU2hhZG93
UmVhbG1HbG9iYWxTY29wZSk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCit7CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZSo+KHZtLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3Jh
cHBlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNmZTIzZjMwODA0MDEzMjAzZTMxYTFiNDFiZWE2
ZDU5NWE4NzBkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDg5IEBA
CisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJv
amVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRp
bmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNE
T01XcmFwcGVyLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKKworY2xhc3MgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlIDogcHVibGljIEpTRE9NV3JhcHBlcjxTaGFkb3dSZWFsbUds
b2JhbFNjb3BlPiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlPjsKKyAgICBzdGF0aWMgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwsIEpTQzo6SlNQcm94eSogcHJveHkpCisgICAgewor
ICAgICAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlND
OjphbGxvY2F0ZUNlbGw8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPih2bSkpIEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKTsKKyAgICAgICAgcHRy
LT5maW5pc2hDcmVhdGlvbih2bSwgcHJveHkpOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0K
KworICAgIHN0YXRpYyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiB0b1dyYXBwZWQoSlNDOjpWTSYs
IEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwor
CisgICAgREVDTEFSRV9JTkZPOworCisgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpLCBKU0M6Ok5vbkFy
cmF5KTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpT
Qzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUsIEpTQzo6U3Vic3BhY2VBY2Nlc3MgbW9kZT4gc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1
YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQorICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChtb2Rl
ID09IEpTQzo6U3Vic3BhY2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gc3Vic3BhY2VGb3JJbXBsKHZtKTsKKyAgICB9Cisg
ICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSk7
CisgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXIm
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Citw
cm90ZWN0ZWQ6CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTQzo6Vk0mLCBKU0M6OlN0
cnVjdHVyZSosIFJlZjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmKTsKKyAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTsKK307CisKK2NsYXNzIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZU93bmVyIGZpbmFsIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVy
IHsKK3B1YmxpYzoKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6QWJzdHJhY3RTbG90VmlzaXRv
ciYsIGNvbnN0IGNoYXIqKikgZmluYWw7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBmaW5hbDsKK307CisKK2lubGluZSBKU0M6Oldl
YWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUqKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVPd25lcj4gb3duZXI7CisgICAgcmV0dXJuICZvd25lci5nZXQoKTsKK30KKwor
aW5saW5lIHZvaWQqIHdyYXBwZXJLZXkoU2hhZG93UmVhbG1HbG9iYWxTY29wZSogd3JhcHBhYmxl
T2JqZWN0KQoreworICAgIHJldHVybiB3cmFwcGFibGVPYmplY3Q7Cit9CisKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU+IHsKKyAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU7
CisgICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUq
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTgxMmYw
NDg2NDY2Y2Q4ZTRkOTcxNjJiNGNkZDNmNjMyZDJkZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9ycy5jcHAKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBp
cyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0
cnlpbmcgdG8gcmVnZW5lcmF0ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aCBhbmQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBi
dWlsZC4KKyovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4MTJmMDQ4NjQ2NmNkOGU0ZDk3MTYyYjRjZGQzZjYz
MmQyZGU4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApAQCAtMCww
ICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQg
c2NyaXB0cyB0aGF0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAor
ICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVk
IGZvciBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQg
dGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Njc2ZGQ3ZjFmZTdhOWFjZDk2OWU2MGNhMGU4ZDljZmVi
ZTE0Zjk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCkBAIC0wLDAgKzEsMiBAQAorW0V4cG9z
ZWQ9U2hhZG93UmVhbG1dIGludGVyZmFjZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVh
bG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmNlNDg3MTMxNmQ2YTA3MzQyNzZkM2I0ZTk0OThmNzA0ZjZjNWExZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDQgQEAKK3BhcnRpYWwgaW50
ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgeworICAgIGF0dHJpYnV0ZSBFeHBvc2VkU3Rh
ckNvbnN0cnVjdG9yIEV4cG9zZWRTdGFyOworICAgIGF0dHJpYnV0ZSBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5k
ZW5jaWVzLmRlcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVt
ZW50YWxEZXBlbmRlbmNpZXMuZGVwCmluZGV4IGMxMjMyMTUyNDYxYTZjMmVkMmU1NDgwYTJlN2M2
ZGI2ODg0YmE0NjMuLmUzMWUwZjU4MjNjZWNkYzUwY2NiYmM0ZjdmMjYxNjcyYWMwZTcxM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50
YWxEZXBlbmRlbmNpZXMuZGVwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCkBAIC0yMSw2ICsyMSwxMCBAQCBKU1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCiBET01TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV2ViRE9NU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Lmg6IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGw6CitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aDogU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0RPTVNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaDogU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK1dl
YkRPTVNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaDogU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgogSlNT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oOiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5pZGwKIERPTVNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV2ViRE9NU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDog
U2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzNTMzYzIwZTJlZTU3OTYwYjU0YmZl
MTUzNmRlM2ZiMmY4Y2NhMTg2Li4yYWFiN2I2MjU5ZTdmMTI5M2E4MDFmOGIzMGUyOThkMjJlYzdj
YzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAg
LTk0LDYgKzk0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtlckdsb2JhbFNj
b3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
dmlydHVhbCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAg
LTMxMiw2ICszMTMsNyBAQCBwcml2YXRlOgogICAgIC8vIENhbGxlcnMgc2hvdWxkIHRyeSB0byBj
cmVhdGUgdGhlIENvbnNvbGVNZXNzYWdlIHRoZW1zZWx2ZXMuCiAgICAgdmlydHVhbCB2b2lkIGFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlND
OjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGlu
ZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0
YWNrPiYmKSA9IDA7CisKICAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hlZFNjcmlwdCopOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTdk
NTU4YjJhMjQ3NjkxN2Y1MjEyMGRkNWQ2ODZjNzc3OTA2ZDI1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApAQCAtMCwwICsx
LDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgi
CisKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOworCitSZWZQ
dHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dHJ5Q3Jl
YXRlKEpTRE9NR2xvYmFsT2JqZWN0KiB3cmFwcGVyLCBTY3JpcHRNb2R1bGVMb2FkZXIqIGxvYWRl
cikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUod3Jh
cHBlciwgbG9hZGVyKSk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUoSlNET01HbG9iYWxPYmplY3QqIHdyYXBwZXIsIFNjcmlwdE1vZHVsZUxvYWRl
ciogbG9hZGVyKQorICAgIDogbV9pbmN1YmF0aW5nV3JhcHBlcih3cmFwcGVyKQorICAgICwgbV9w
YXJlbnRMb2FkZXIobG9hZGVyKQoreyB9CisKK1NjcmlwdE1vZHVsZUxvYWRlciYgU2hhZG93UmVh
bG1HbG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKCkKK3sKKyAgICBpZiAobV9tb2R1bGVMb2FkZXIp
CisgICAgICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7CisKKyAgICBhdXRvIHdyYXBwZXIgPSBt
X3dyYXBwZXIuZ2V0KCk7CisgICAgQVNTRVJUKHdyYXBwZXIpOworCisgICAgbV9tb2R1bGVMb2Fk
ZXIgPSBtX3BhcmVudExvYWRlci0+c2hhZG93UmVhbG1Mb2FkZXIod3JhcHBlcik7CisgICAgcmV0
dXJuICptX21vZHVsZUxvYWRlcjsKK30KKworSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSog
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6d3JhcHBlcigpCit7CisgICAgcmV0dXJuIG1fd3JhcHBl
ci5nZXQoKTsKK30KKworU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUoKSB7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzY1ZWE0OTg3YjM0YWU1
MmMyZWNlMTY1MDI0NTAzNDgwMDE0YzM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dlYWsuaD4K
KyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
SlNDIHsgY2xhc3MgVk07IH0KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlOworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBT
Y3JpcHRNb2R1bGVMb2FkZXI7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZG93UmVhbG1H
bG9iYWxTY29wZT4geworICAgIGZyaWVuZCBjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlOworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2hhZG93UmVhbG1HbG9iYWxTY29wZSk7
CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHRy
eUNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCosIFNjcmlwdE1vZHVsZUxvYWRlciopOworICAgIH5T
aGFkb3dSZWFsbUdsb2JhbFNjb3BlKCk7CisKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiBz
ZWxmKCkgeyByZXR1cm4gKnRoaXM7IH0KKyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxv
YWRlcigpOworICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqIHdyYXBwZXIoKTsKKwor
cHJvdGVjdGVkOgorICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNET01HbG9iYWxPYmplY3Qq
LCBTY3JpcHRNb2R1bGVMb2FkZXIqKTsKKworcHJpdmF0ZToKKyAgICBKU0M6OldlYWs8SlNET01H
bG9iYWxPYmplY3Q+IG1faW5jdWJhdGluZ1dyYXBwZXI7CisgICAgU2NyaXB0TW9kdWxlTG9hZGVy
KiBtX3BhcmVudExvYWRlcjsKKyAgICBKU0M6OldlYWs8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZT4gbV93cmFwcGVyIHsgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9h
ZGVyPiBtX21vZHVsZUxvYWRlciB7IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNDA2ZmQ0YzM4NWRmNmE5MTMxYjM3YWI5ODI5MTA2YTMyZGZjMDAxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApA
QCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKworWworICAgIEV4cG9zZWQ9U2hhZG93UmVhbG0sCisgICAgSlNMZWdhY3lQYXJl
bnQ9SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSwKKyAgICBHbG9iYWw9U2hhZG93UmVhbG0s
CisgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCitdIGludGVyZmFjZSBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUg
c2VsZjsKK307CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOGUxNDU3MGNhMTBhYjU4ZDAwMWUzMzk3NmQ3MGM1NWVhYTQ4NGE3Yi4uNmQxMjAyN2Qz
NzUyMGJlYjJiNjIyYWI5NWRjYmVlODY5NWE1YWQ5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEyLTEwICBK
b3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTaGFkb3cgUmVh
bG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBmb3Igc2hhZG93IHJlYWxtIGltcG9ydFZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQx
NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weToKKyAgICAgICAgKEJpbmRpbmdzVGVzdHMu
Z2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kpOgorICAgICAgICAoQmluZGluZ3NUZXN0
cy5tYWluKToKKwogMjAyMS0xMi0wOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3Rv
ckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIHRvIG5vdGlmaWVkIHdoZW4gYW4gZXh0ZW5zaW9uIHRh
YiBuYXZpZ2F0ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3Mv
bWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQppbmRleCAw
MjJkMDllODY5MzExZjAwNDQzNDA5NjljYTM0OTg1Y2I3MjBlYTU3Li5jZThiNTA2MzEwZjE5N2Qy
NTNhNWI1MTg1OWYxN2Q2ZTMxOWQ1YTdiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JpbmRpbmdzL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5n
cy9tYWluLnB5CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
ICAgICBleGl0X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9jb2RlCiAK
LSAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGly
ZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZp
bGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRl
c3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgZGVmIGdlbmVyYXRlX3N1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2Rl
cGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2lu
ZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAg
ICAgICBpZGxfZmlsZXNfbGlzdCA9IHRlbXBmaWxlLm1rc3RlbXAoKQogICAgICAgICBmb3IgaW5w
dXRfZmlsZSBpbiBvcy5saXN0ZGlyKGlucHV0X2RpcmVjdG9yeSk6CiAgICAgICAgICAgICAobmFt
ZSwgZXh0ZW5zaW9uKSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKQEAgLTk0LDYgKzk0
LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRh
bE1ha2VmaWxlRGVwcycsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsCiAg
ICAgICAgICAgICAgICAnLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlJywgd2luZG93X2NvbnN0cnVj
dG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCisgICAgICAgICAg
ICAgICAnLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHNoYWRvd3Jl
YWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1kZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBkZWRpY2F0ZWR3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1zaGFyZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwKQEAgLTE5OSw2ICsyMDAsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAg
ICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlbmFtZSA9ICdTdXBwbGVt
ZW50YWxEZXBlbmRlbmNpZXMuZGVwJwogICAgICAgICBkb21fd2luZG93X2NvbnN0cnVjdG9yc19m
aWxlbmFtZSA9ICdET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsJworICAgICAgICBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSA9ICdTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAg
ICAgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgc2Vydmlj
ZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBzaGFyZWR3b3JrZXJnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuaWRsJwpAQCAtMjEzLDYgKzIxNSw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUgPSBvcy5wYXRoLmpv
aW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2Rp
cmVjdG9yeSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZW5hbWUpCiAgICAg
ICAgIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9y
eSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBkb21fd2lu
ZG93X2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYu
cmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKQorICAgICAgICBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qg
c2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHNlcnZpY2V3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9y
eSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzZXJ2aWNl
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBzaGFyZWR3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2Rp
cmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBz
aGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCkBAIC0yMjEsNyAr
MjI0LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYg
bm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90
IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2Nv
bnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVk
aWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFp
bnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUpOgorICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlu
cHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFs
X21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVk
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBn
ZW5lcmF0ZSBhIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNo
dXRpbC5ybXRyZWUod29ya19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIz
Myw2ICsyMzYsOCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90
ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFu
Z2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxs
X3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2No
YW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgc2hh
ZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgorICAgICAgICAgICAg
ICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3Rf
ZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3Rv
cnksIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAg
ICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBz
ZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlu
cHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjEwYTVjZTFlOGIwMzY0ZTA2YTQ2YzNkNDM5Y2E1ZDA5M2YxZjk5My4u
ZGM4M2UwYWQ5OWUwYWY2N2I0MWMwMmY3YjdhMmZhNzY4ZDA2ZTg0MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29tPgor
CisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBmb3Ig
c2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbXByb3ZlIHRlc3QgY292ZXJhZ2Ug
YSBiaXQgZm9yIHNoYWRvdyByZWFsbXMsIGVzcGVjaWFsbHkgcnVubmluZyBuZXN0ZWQgb3IgaW4g
d29ya2VyIGNvbnRleHRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL1No
YWRvd1JlYWxtLXdvcmtlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMv
U2hhZG93UmVhbG0tZXZhbHVhdGUuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0X2Nsb3NlZF9v
cGVuZXIpOgorICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5jIHQpOgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qczogQWRkZWQuCisgICAgICAgICh3
cmFwcGVkTG9nKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0KToKKyAgICAgICAgKiBq
cy9zY3JpcHQtdGVzdHMvZXhhbXBsZS1tb2R1bGUuanM6IEFkZGVkLgorICAgICAgICAoY2hlY2sp
OgorICAgICAgICAobG9nX2VxdWFsKToKKyAgICAgICAgKGNoZWNrX25lc3RlZCk6CisgICAgICAg
IChzZXRWYWx1ZSk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3NoYWRvdy1yZWFsbS13b3Jr
ZXIuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0X2VxdWFscyk6CisgICAgICAgIChhc3luYyB0
ZXN0KToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKwogMjAyMS0xMi0wOSAgTWF0dCBXb29kcm93
ICA8bWF0dC53b29kcm93QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnByZWZpeCAtd2Via2l0LW1h
c2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNjk4MDQ5NzNmZGVhYWNjZmI0ZGEzM2I2M2ZkYjkzODI1Y2Y3NTFkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlv
dXIgb2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmV2YWx1YXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCisKK1BBU1Mgd2luZG93LmNsb3NlKCkgYWZmZWN0cyBuYW1lIHRhcmdldGlu
ZyBpbW1lZGlhdGVseQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41OTZhYWUxZGFkNThjMGEwNzhjZTBkMDdiYTI5NGM2YjA3MzliYzM5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbApA
QCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hhZG93UmVh
bG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYyA9
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvU2hhZG93UmVhbG0tZXZhbHVhdGUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MTRjNTU1YTgwOGI3YjJmZmI3ZmM2MTc5ZjcwNzQ3NDg1
NzliMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBv
cnRWYWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiA0
MgorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJvdG90
eXBlLmltcG9ydFZhbHVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitzaGFkb3dS
ZWFsbTogY2FsbGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBlciB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBP
Sworc2hhZG93UmVhbG06IG5lc3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9L
CisKK1BBU1MgY2FuIGltcG9ydCBtb2R1bGUgaW4gYSBzaGFkb3cgcmVhbG0KK1BBU1MgY2FuIG5l
c3QgcmVhbG1zCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9y
dFZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYwZDk3MmJmNjljMjEyNmIwNWU1YWM0OTExZDM2ZDE1YWM3ZjQ1OGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5o
dG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFk
b3dSZWFsbT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOTYzN2I5YzVkYzAxMDA0ZTU0MDRmOTA5NWVmZTA0N2EyMjc4
MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJl
YWxtIEFQSXMgYXJlIGF2YWlsYWJsZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNv
bnRleHRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6
IHNjcmlwdC10ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCitQQVNTIFtXb3JrZXJdIGltcG9y
dC12YWx1ZQorW1dvcmtlcl0gc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBw
ZXIgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBuZXN0ZWQg
cmVhbG0gZXZhbCB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworUEFTUyBbV29ya2VyXSBuZXN0ZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbCBiL0xheW91dFRl
c3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1M2FjNjQ3YWI1NDU5
ODdiYTZlODVkMDFkMTIwMzhjZjIxOTVmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQSXMgYXJl
IGF2YWlsYWJsZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRzIik7Cisg
ICAgICAgICBjb25zdCB3b3JrZXIgPSBzdGFydFdvcmtlcigic2NyaXB0LXRlc3RzL3NoYWRvdy1y
ZWFsbS13b3JrZXIuanMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvU2hhZG93UmVhbG0tZXZhbHVhdGUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
U2hhZG93UmVhbG0tZXZhbHVhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJkNDkzZmRmMDc2ZTk4NDBjMWJm
ZDczODQ2ZWRkNmFlMTI2YjUyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5qcwpAQCAtMCwwICsxLDIzIEBACitkZXNj
cmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0u
cHJvdG90eXBlLmV2YWx1YXRlIik7CisKK2Z1bmN0aW9uIGFzc2VydF9jbG9zZWRfb3BlbmVyKHcs
IGNsb3NlZCwgb3BlbmVyKSB7CisgIGFzc2VydF9lcXVhbHMody5jbG9zZWQsIGNsb3NlZCk7Cisg
IGFzc2VydF9lcXVhbHMody5vcGVuZXIsIG9wZW5lcik7Cit9CisKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgY29uc3Qgb3BlbmVlID0gd2luZG93Lm9wZW4oIiIsICJncmVhdG5hbWUiKTsK
KyAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworCisgIC8vIHNl
dHVwIHJlYWxtIG5lc3RlZCBpbiBvdXRlclNoYWRvd1JlYWxtCisgIG91dGVyU2hhZG93UmVhbG0u
ZXZhbHVhdGUoInZhciBpbm5lclJlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7Iik7CisgIG91dGVy
U2hhZG93UmVhbG0uZXZhbHVhdGUoInZhciBjYWxsSW5Jbm5lciA9IGlubmVyUmVhbG0uZXZhbHVh
dGUoXCIoY2IpID0+IGNiKClcIik7Iik7CisKKyAgY29uc3QgY2FsbEluTmVzdGVkUmVhbG0gPSBv
dXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCIoY2IpID0+IGNhbGxJbklubmVyKGNiKSIpOworCisg
IC8vIGNhbGwgY2xvc2Ugd2luZG93IHR3byBsZXZlbHMgZGVlcAorICBhc3NlcnRfY2xvc2VkX29w
ZW5lcihvcGVuZWUsIGZhbHNlLCBzZWxmKTsKKyAgY2FsbEluTmVzdGVkUmVhbG0oKCkgPT4gb3Bl
bmVlLmNsb3NlKCkpOworICAvLyBvcGVuZWUuY2xvc2UoKQorICBhc3NlcnRfY2xvc2VkX29wZW5l
cihvcGVuZWUsIHRydWUsIHNlbGYpOworfSwgIndpbmRvdy5jbG9zZSgpIGFmZmVjdHMgbmFtZSB0
YXJnZXRpbmcgaW1tZWRpYXRlbHkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcyBiL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTVmZTNlMjE5
N2ZhYjg1YmVkZjc2YTcwYWFlODBkZGI3NmUzMDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmpzCkBAIC0wLDAg
KzEsMzIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBv
ZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuaW1wb3J0VmFsdWUiKTsKKworZnVuY3Rpb24gd3JhcHBl
ZExvZyhwcmVmaXgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAgICBkZWJ1
ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICB9OworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAg
Y29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhh
bXBsZS1tb2R1bGUuanMiLCAiY2hlY2siKTsKKyAgYXNzZXJ0X2VxdWFscyhjaGVja0ZuKHdyYXBw
ZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICBjb25zdCBvdXJNb2R1bGUgPSBhd2Fp
dCBpbXBvcnQoIi4vZXhhbXBsZS1tb2R1bGUuanMiKTsKKyAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1
bGUudmFsdWUsIHRydWUsICJibG9vcCIpOworICBvdXJNb2R1bGUuc2V0VmFsdWUoNDIpOworICBh
c3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIpOworCisgIGNvbnN0IGltcG9ydGVkVmFs
ID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5q
cyIsICJ2YWx1ZSIpOworICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsLCB0cnVlKTsKKyAgY29u
c3Qgc2V0VmFsdWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUo
Ii4vZXhhbXBsZS1tb2R1bGUuanMiLCAic2V0VmFsdWUiKTsKKyAgc2V0VmFsdWVJbXBvcnRlZCgx
MDApOworICBjb25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9y
dFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7CisgIGFzc2VydF9lcXVhbHMo
aW1wb3J0ZWRWYWwyLCAxMDApOworICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIp
OworfSwgImNhbiBpbXBvcnQgbW9kdWxlIGluIGEgc2hhZG93IHJlYWxtIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRv
d1JlYWxtKCk7CisgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2tfbmVzdGVkIik7CisgICAgYXNz
ZXJ0X2VxdWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKK30s
ICJjYW4gbmVzdCByZWFsbXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9leGFtcGxlLW1vZHVsZS5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9leGFt
cGxlLW1vZHVsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzJlYmM3YTUwMzBlZDgwNDAxMDMyYjA4Mzk1Mjkz
NDllNTI4YmU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L2V4YW1wbGUtbW9kdWxlLmpzCkBAIC0wLDAgKzEsMzIgQEAKK3ZhciB2YWx1ZSA9IHRydWU7CisK
K3ZhciBjaGVjayA9IGZ1bmN0aW9uKGxvZykgeworICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBl
T2YoZ2xvYmFsVGhpcykgIT09IE9iamVjdC5wcm90b3R5cGUpIHsKKyAgICAgICAgbG9nKCJnbG9i
YWxUaGlzIHByb3RvdHlwZSBpcyBPYmplY3QucHJvdG90eXBlIik7CisgICAgICAgIGxvZyhPYmpl
Y3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcykudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGxvZ19lcXVh
bChsb2csIG1zZywgeCwgeSkgeworICAgIGNvbnN0IHJlc3VsdCA9IHggPT0geTsKKyAgICBsb2co
YCR7bXNnfTogJHtyZXN1bHQgPyAnT0snIDogJ0ZBSUxFRCd9YCk7Cit9CisKK3ZhciBjaGVja19u
ZXN0ZWQgPSBmdW5jdGlvbihsb2cpIHsKKyAgICBjb25zdCBzciA9IG5ldyBTaGFkb3dSZWFsbSgp
OworICAgIGdsb2JhbFRoaXMueCA9IDEwMDsKKyAgICBzci5ldmFsdWF0ZShgZ2xvYmFsVGhpcy54
ID0gNDJgKTsKKyAgICBjb25zdCBmID0gc3IuZXZhbHVhdGUoYCgpID0+IHtyZXR1cm4gZ2xvYmFs
VGhpcy54O31gKTsKKyAgICBsb2dfZXF1YWwobG9nLCAiY2FsbGluZyBuZXN0ZWQgcmVhbG0gd3Jh
cHBlciB1c2VzIGNvcnJlY3QgZ2xvYmFsIiwgNDIsIGYoKSk7CisgICAgbG9nX2VxdWFsKGxvZywg
Im5lc3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWwiLCA0Miwgc3IuZXZhbHVhdGUo
YGdsb2JhbFRoaXMueGApKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordmFyIHNldFZhbHVlID0g
ZnVuY3Rpb24gKG5ld1ZhbHVlKSB7CisgICAgY29uc29sZS5sb2cobmV3VmFsdWUpOworICAgIHZh
bHVlID0gbmV3VmFsdWU7Cit9CisKK2V4cG9ydCB7IHZhbHVlLCBzZXRWYWx1ZSwgY2hlY2ssIGNo
ZWNrX25lc3RlZCB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3No
YWRvdy1yZWFsbS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc2hhZG93
LXJlYWxtLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTEzZTUwZTFhZDFjMWM0M2MyN2EwMTAwM2Rm
OTllNGRmNDdlMzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL3NoYWRvdy1yZWFsbS13b3JrZXIuanMKQEAgLTAsMCArMSw1MSBAQAoraW1wb3J0U2NyaXB0
cygiLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIik7CisKK2Z1bmN0aW9uIGFzc2VydF9l
cXVhbHMoeCwgeSkgeworICAgIGlmICh4ID09PSB5KSByZXR1cm47CisgICAgdGhyb3cgbmV3IEVy
cm9yKGBhc3NlcnRpb24gZmFpbHVyZTogZXhwZWN0ZWQgJHt4fSwgZ290ICR7eX1gKTsKK30KKwor
ZnVuY3Rpb24gd3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykg
eworICAgICAgICBkZWJ1ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICB9OworfQorCisKK2Fz
eW5jIGZ1bmN0aW9uIHRlc3Qoa2V5LCBmKSB7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgZigp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChrZXkgKyBlLnRvU3RyaW5n
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHRlc3RQYXNzZWQoa2V5KTsKK30KKwor
KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBhd2FpdCB0ZXN0KCJpbXBvcnQtdmFsdWUiLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVh
bG0oKTsKKyAgICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2siKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICAg
ICAgICBjb25zdCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBvcnQoIi4vZXhhbXBsZS1tb2R1bGUuanMi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIHRydWUsICJibG9vcCIp
OworICAgICAgICBvdXJNb2R1bGUuc2V0VmFsdWUoNDIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KG91ck1vZHVsZS52YWx1ZSwgNDIpOworCisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsID0gYXdh
aXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2
YWx1ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsLCB0cnVlKTsKKyAgICAg
ICAgY29uc3Qgc2V0VmFsdWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0
VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAic2V0VmFsdWUiKTsKKyAgICAgICAgc2V0VmFs
dWVJbXBvcnRlZCgxMDApOworICAgICAgICBjb25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRl
clNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwyLCAxMDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIpOworICAgIH0pOworCisgICAgYXdhaXQgdGVz
dCgibmVzdGVkIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxt
ID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRl
clNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrX25l
c3RlZCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93
UmVhbG0iKSksIHRydWUpOworICAgIH0pOworICAgIGZpbmlzaEpTVGVzdCgpOworfSkoKTsK
</data>
<flag name="commit-queue"
          id="472303"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446817</attachid>
            <date>2021-12-10 14:29:23 -0800</date>
            <delta_ts>2021-12-13 13:50:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211210172922.patch</filename>
            <type>text/plain</type>
            <size>103892</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KaW5kZXggM2ZiNzc4NGVjNTdkMTY0
ZDVjNjc3NzAxOWVmYzMyZmQ4ZWYyYjVmNS4uNjUzOGQzMzZjODg5NDFlMTM3N2RlYzBkYThlNGZi
ZDcxOTdkNjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUds
b2JhbE9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFs
T2JqZWN0Lm1tCkBAIC03MSw2ICs3MSw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51
bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1p
bmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9y
dFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRXhjZXB0aW9uKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDk4OTgwNDBm
YWYyMjRiOWEzM2ZlZTc5MGIwNzY2YmU2NzYzYTU4ZTguLmIzZDJiMDRhNmQ2MzViMDQyYTI5Yjkw
NzVhOTUzYWE0ZWUxZDY3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03NTgsNiArNzU4LDcg
QEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAg
IG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aW5h
dGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEds
b2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggNTkyMmQ1NjJjNDZmODAwYjFhYzFhYWQ3ZTE4ZDc3ZDkyYjRhMjE4Ny4uZDQzNTIyOGY1OTM0
NTBiZTk5MWQ2MTllYzc4NDhjMDgxNzkwZjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTM3LDYgKzUzNyw3IEBAIGNvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxw
dHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVh
bWluZworICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogLyogU291cmNl
IGZvciBKU0dsb2JhbE9iamVjdC5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMTg0ZDFjOGJmYTdhOGYwYTRhYTUwODIzZmJhNmUz
YjgyYmQxOTlhZi4uYzMzOGQ3ZDkxMzIyZjMzNzU0ODIyN2VmNzFlYzc2Y2MwZTlmMzE5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0y
NjQsNiArMjY0LDkgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKIAogICAgIHR5
cGVkZWYgSlNQcm9taXNlKiAoKkluc3RhbnRpYXRlU3RyZWFtaW5nUHRyKShKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUsIEpTT2JqZWN0Kik7CiAgICAgSW5zdGFudGlhdGVTdHJlYW1pbmdQdHIgaW5z
dGFudGlhdGVTdHJlYW1pbmc7CisKKyAgICB0eXBlZGVmIEpTR2xvYmFsT2JqZWN0KiAoKkRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsRnVuY3Rpb25QdHIpKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyIGRlcml2ZVNoYWRvd1JlYWxtR2xv
YmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDgyLDYgKzEwODUsMTEgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCop
IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hh
ZG93UmVhbG1HbG9iYWxPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9t
TWV0aG9kVGFibGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVs
bCgpKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNHbG9iYWxPYmpl
Y3QqKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgc3RhdGljIFJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KikgeyByZXR1cm4gUnVudGltZUZsYWdzKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMTZlOGFhYzNkYWYzMWNhYmY2YjE4OWVhZDFiMzMxNmM0YWMxNTdmNy4uYzg4NmJhYzA2
M2I0MmM2NzJmMmZlYzk1MTgxZjEwMTdiNjZhZjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKQEAgLTUz
LDcgKzUzLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTaGFkb3dS
ZWFsbUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGcKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgU3RydWN0dXJlKiBzaGFkb3dSZWFsbVN0cnVjdHVyZSA9IFNo
YWRvd1JlYWxtT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5zaGFkb3dSZWFsbVByb3RvdHlwZSgpKTsKLSAgICBKU09iamVjdCogc2hhZG93UmVh
bG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBzaGFkb3dSZWFsbVN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICBKU09i
amVjdCogc2hhZG93UmVhbG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBz
aGFkb3dSZWFsbVN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHNoYWRvd1JlYWxtT2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCmluZGV4IGEyNWE0MDA4MDkzMDA4
MWYwMDhlNjNlMTE2OWRjZjc3ZTc0MzhmYzguLjFiN2JlOWRhNzE3ZDU3NjEwZjZlYmM5MjIwNTQ5
NTBkYmI4ODQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
aGFkb3dSZWFsbU9iamVjdC5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCB2b2lkIFNoYWRvd1JlYWxt
T2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3Ip
CiAKIERFRklORV9WSVNJVF9DSElMRFJFTihTaGFkb3dSZWFsbU9iamVjdCk7CiAKLVNoYWRvd1Jl
YWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSkKK1No
YWRvd1JlYWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgU2hh
ZG93UmVhbG1PYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFNoYWRv
d1JlYWxtT2JqZWN0Pih2bSkpIFNoYWRvd1JlYWxtT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAg
IG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIG1ldGhvZFRhYmxl
KTsKLSAgICBvYmplY3QtPm1fZ2xvYmFsT2JqZWN0LnNldCh2bSwgb2JqZWN0LCBnbG9iYWxPYmpl
Y3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBzaGFkb3dSZWFsbUdsb2JhbE9iamVjdCA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+ZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3Qodm0sIGdsb2JhbE9iamVjdCk7CisgICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5z
ZXQodm0sIG9iamVjdCwgc2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRv
d1JlYWxtT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bU9iamVjdC5oCmluZGV4IGQwODhmZjc4NDJlMjBhZTU0MjUyZjZkYjA1ZDRjN2U4NGY5ZWIxNWMu
LmFkYjJlZDAyMmEzNzBjNDAzOTI0OTM3YjVhYTdiNTNiOThmMjdmNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaApAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKLSAgICBzdGF0aWMgU2hhZG93
UmVhbG1PYmplY3QqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKik7CisgICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCgpIHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNDczMjgzOGYyNDZlMGIyYjE0ZmQwMWEwY2Q2MjQzZTBiNjMxMTVkNS4uMjRm
NDRlNmJjYjFjNzI1YTM0NDM2OTdjYWMwOTIzYmY0NjU2MGU3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTEyMDYsNiArMTIwNiw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCiAgICAgcGFnZS9TY3JvbGxPcHRpb25z
LmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorICAgIHBhZ2UvU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1N0cnVjdHVy
ZWRTZXJpYWxpemVPcHRpb25zLmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCkBAIC0yMDc4LDYg
KzIwNzksNyBAQCBzZXQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vRE9NSXNvU3Vic3BhY2VzLmgpCiBzZXQoQ09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9ET01Db25zdHJ1Y3RvcnMuaCkK
IHNldChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0RPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1dvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKK3NldChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFNFUlZJQ0VXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChTSEFSRURX
T1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQpAQCAtMjI2
MiwxMiArMjI2NCwxMyBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBH
RU5FUkFUT1IgSlMKICAgICBTVVBQTEVNRU5UQUxfREVQRklMRSAke1NVUFBMRU1FTlRBTF9ERVBF
TkRFTkNZX0ZJTEV9CiAgICAgUFBfRVhUUkFfT1VUUFVUCi0gICAgICAgICR7SVNPX1NVQlNQQUNF
U19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9XX0NPTlNU
UlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSAke0RF
RElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9X
X0NPTlNUUlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
fSAke1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9ICR7REVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgUFBfRVhUUkFfQVJHUwog
ICAgICAgICAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJHtJU09fU1VCU1BBQ0VTX0hFQURFUl9G
SUxFfQogICAgICAgICAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJHtDT05TVFJVQ1RPUlNfSEVB
REVSX0ZJTEV9CiAgICAgICAgIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAke1dJTkRPV19DT05T
VFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KKyAgICAgICAgLS1zaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1NIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAke1NFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFSRURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDYwNTE0MDVhZGE1M2Y2ODViY2Q4MTEyMGJhMjY5NzQwOGY3MjM4NjguLmQzZjFl
YTk1ZmE5NGM5ZDU2NGMxMWEzZjM0MzRmMDI1NjI0ZGQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTI1NSw2ICsxMjU1LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAg
ICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xs
VG9PcHRpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2hhcmVEYXRhLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1VuZG9JdGVtLmlkbCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBJU09fU1VCU1BBQ0VT
X0hFQURFUl9GSUxFID0gRE9NSXNvU3Vic3BhY2VzLmgKIENPTlNUUlVDVE9SU19IRUFERVJfRklM
RSA9IERPTUNvbnN0cnVjdG9ycy5oCiBXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgPSBET01XaW5k
b3dDb25zdHJ1Y3RvcnMuaWRsCiBXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9
IFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU0hBRE9XUkVBTE1HTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsCiBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogU0VSVklDRVdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAogU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTIwOTEsNiArMjA5Myw3
IEBAIElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChDT05TVFJVQ1RPUlNfSEVBREVS
X0ZJTEUpIFwKICAgICAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKFNIQURPV1JFQUxNR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKERFRElDQVRFRFdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgXApAQCAtMjEwMSw3ICsyMTA0LDcgQEAgSURMX0lOVEVSTUVESUFURV9QQVRURVJO
UyA9ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVS
TUVESUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRS
SUJVVEVTX0ZJTEUpICQoSlNfQklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RF
RklORV9ERVBFTkRFTkNJRVMpCiAJJChzaGVsbCBlY2hvICQoSlNfQklORElOR19JRExTKSB8IHRy
ICIgIiAiXG4iID4gSURMRmlsZU5hbWVzTGlzdC50eHQpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FO
RF9QTEFURk9STV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xp
c3QgSURMRmlsZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJV
VEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQ
RU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hF
QURFUl9GSUxFKSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVS
X0ZJTEUpIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklM
RSkgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkg
LS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAkKFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
YXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQo
U1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFU
Rk9STV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgSURM
RmlsZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJ
TEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5D
WV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9G
SUxFKSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUp
IC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KFNIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1z
aGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBs
ZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCiAjCiAj
IEVtaXQgdGhlIHJ1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZyb20gSURMIGZpbGVzLiBOb3Rl
IHRoYXQgdGhlcmUgYXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDU3ODQ2N2FjYWY3MDEwZmYzNjhlODAw
ZjNkN2Q3MGI4MjEzYmI0MzIuLjhmNTE4ZTUyZDUwMDU5YzMxYWY4YTA0NzdiYjFkOTdkOWUzODk5
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02MTUsNiArNjE1LDcgQEAgYmluZGluZ3MvanMvSlNXZWJY
UlNwYWNlQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJYUlZpZXdDdXN0b20uY3BwCiBiaW5k
aW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCitiaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcAog
YmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2VyTmF2aWdhdG9yQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2Nv
cGVCYXNlLmNwcApAQCAtMTc4OCw2ICsxNzg5LDcgQEAgcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAK
IHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKIHBh
Z2UvU2V0dGluZ3NCYXNlLmNwcAorcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcAogcGFn
ZS9TaGFyZURhdGFSZWFkZXIuY3BwCiBwYWdlL1NvY2tldFByb3ZpZGVyLmNwcAogcGFnZS9TcGF0
aWFsTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmNwcAppbmRleCA1MjUxMGMzMDgxOGYwY2E5MTZhODg0Mzc3ZDIyNGExYWJh
Nzk1Yjg1Li5iOWEyMGYyMjhiODAxYzVhZDA3NzBhYzc2ZTQ4NWI2NGU1ZmJjZTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC00
NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKICNpbmNs
dWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiSlNSZW1vdGVET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXcml0YWJs
ZVN0cmVhbS5oIgpAQCAtMjY2LDYgKzI2OCw4IEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpT
RE9NR2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICAgICAg
cmV0dXJuIGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwogICAgIGlmIChpbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZt
KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoaW5oZXJpdHM8SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZT4odm0oKSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CiAgICAgaWYgKGluaGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2bSgpKSkK
ICAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZSo+KHRo
aXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKGluaGVyaXRzPEpTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZT4odm0oKSkpCkBAIC01MDYsNiArNTEwLDggQEAgc3RhdGljIFNjcmlw
dE1vZHVsZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gJmRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQorICAgIGlmIChnbG9iYWxPYmplY3QtPmlu
aGVyaXRzPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJu
ICZqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVj
dCktPndyYXBwZWQoKS5tb2R1bGVMb2FkZXIoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhl
cml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+
KHZtKSkKQEAgLTU3MCw2ICs1NzYsMjUgQEAgSlNDOjpKU09iamVjdCogSlNET01HbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlMKICAgICBy
ZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CiB9CiAKK0pTQzo6SlNHbG9iYWxP
YmplY3QqIEpTRE9NR2xvYmFsT2JqZWN0OjpkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdChK
U0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIGF1
dG8gZG9tR2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KTsKKworICAgIEFTU0VSVChkb21HbG9iYWxPYmplY3QpOworICAgIGF1dG8gc2NvcGUgPSBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoZG9tR2xvYmFsT2JqZWN0LCBzY3JpcHRN
b2R1bGVMb2FkZXIoZG9tR2xvYmFsT2JqZWN0KSkucmVsZWFzZU5vbk51bGwoKTsKKworICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkpOworICAgIGF1dG8gcHJveHlTdHJ1Y3R1
cmUgPSBKU1Byb3h5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkp
OworICAgIGF1dG8gcHJveHkgPSBKU1Byb3h5OjpjcmVhdGUodm0sIHByb3h5U3RydWN0dXJlKTsK
KyAgICBhdXRvIHdyYXBwZXIgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZSh2bSwg
c3RydWN0dXJlLCBXVEZNb3ZlKHNjb3BlKSwgcHJveHkpOworCisgICAgd3JhcHBlci0+c2V0UHJv
dG90eXBlRGlyZWN0KHZtLCB3cmFwcGVyLT5vYmplY3RQcm90b3R5cGUoKSk7CisgICAgcHJveHkt
PnNldFRhcmdldCh2bSwgd3JhcHBlcik7CisKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKworCiBK
U0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQogewogICAgIGlmIChpczxEb2N1
bWVudD4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCBmNGQ4NjVkOWEwMzI3YjhhZDk0ZjdiMGRmOTNjZmMwZDU3Y2U4YjU4
Li4yMjc5MmEwOWFhMGIwMWZhMDk2YmFiYmFjM2I1N2I4YjY5YTE2ZDU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTM5LDYgKzM5LDcg
QEAgY2xhc3MgRE9NR3VhcmRlZE9iamVjdDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRE9NV3JhcHBl
cldvcmxkOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNjcmlwdE1vZHVs
ZUxvYWRlcjsKIAogdXNpbmcgSlNET01TdHJ1Y3R1cmVNYXAgPSBIYXNoTWFwPGNvbnN0IEpTQzo6
Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1cmU+PjsKIHVzaW5nIERP
TUd1YXJkZWRPYmplY3RTZXQgPSBIYXNoU2V0PERPTUd1YXJkZWRPYmplY3QqPjsKQEAgLTg2LDYg
Kzg3LDcgQEAgcHVibGljOgogICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGlu
SW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsg
fQogCiAgICAgc3RhdGljIHZvaWQgcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcChK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhjZXB0aW9uKik7CisgICAgc3RhdGljIEpTQzo6SlNHbG9i
YWxPYmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CiAKICAgICB2b2lkIGNsZWFyRE9NR3VhcmRlZE9iamVjdHMoKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAK
aW5kZXggZjg5MWU3NmU4NjVjNmIxZmE1YzMzYmE0NTM4YTEyOTg2NmY4MzQyMS4uOWIyYjdlZDRm
MDRhZDFlMDY0NWY4OGM4YTJiNmYzMmY1N2U0ZTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC05NSw2ICs5NSw3IEBAIGNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSA9IHsKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICAmZGVy
aXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01X
aW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+
JiYgd2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGFiM2ZhYzY3MTMw
NGY4YzdiY2E1OTAzMDMyZWQ2YzYwYmRjMWZhNGIuLmE0ZDcxNWY3MDhjNjBjMDI4NjU3OWNmMTU5
MDM1NzcwMGI3ZDU0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UmVtb3RlRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBjb25zdCBHbG9iYWxP
YmplY3RNZXRob2RUYWJsZSBKU1JlbW90ZURPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgPQogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIs
IC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWlu
ZworICAgIG51bGxwdHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiBK
U1JlbW90ZURPTVdpbmRvd0Jhc2U6OkpTUmVtb3RlRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBSZWZQdHI8UmVtb3RlRE9NV2luZG93PiYmIHdpbmRvdywgSlNXaW5k
b3dQcm94eSogcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExYWI2MGZm
ZWI2ZDJiNTQ5YjJmZWZkZDEzYTljZmMwZmVkZDc1YmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcApA
QCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZS5oIgorCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiSlNN
aWNyb3Rhc2tDYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5o
IgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1Byb3h5Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWljcm90
YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2U6OnNfaW5mbyA9IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmSlNE
T01HbG9iYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKSB9OworCitjb25zdCBHbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlID0geworICAgICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLAorICAgICZzaG91
bGRJbnRlcnJ1cHRTY3JpcHQsCisgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCisgICAgJnF1
ZXVlTWljcm90YXNrVG9FdmVudExvb3AsCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9y
ZVRpbWVvdXQsCisgICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9h
ZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNy
ZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKKyAg
ICAmcHJvbWlzZVJlamVjdGlvblRyYWNrZXIsCisgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9u
QXRFdmVudExvb3AsCisgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKKyAgICAmc2Ny
aXB0RXhlY3V0aW9uU3RhdHVzLAorICAgICZyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsLAor
ICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAorI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKKyAgICAmY29tcGlsZVN0cmVhbWluZywKKyAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcs
CisjZWxzZQorICAgIG51bGxwdHIsCisgICAgbnVsbHB0ciwKKyNlbmRpZgorICAgICZkZXJpdmVT
aGFkb3dSZWFsbUdsb2JhbE9iamVjdCwKK307CisKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwpCisg
ICAgOiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCBub3JtYWxXb3JsZCh2bSksICZz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQorICAgICwgbV93cmFwcGVkKFdURk1vdmUoaW1wbCkp
Cit7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3sKKyAgICBtX3Byb3h5LnNldCh2bSwgdGhpcywg
cHJveHkpOworICAgIG1fd3JhcHBlZC0+bV93cmFwcGVyID0gSlNDOjpXZWFrKHRoaXMpOworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBtX3Byb3h5LmdldCgpKTsKKyAgICBBU1NFUlQoaW5o
ZXJpdHModm0sIGluZm8oKSkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgordm9p
ZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwq
IGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4o
Y2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OworICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlz
aXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm94eSk7Cit9CisKK0RFRklORV9WSVNJVF9DSElM
RFJFTihKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKTsKKworU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGluY3ViYXRpbmcoKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOworfQorCitjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6aW5jdWJhdGluZygpIGNvbnN0Cit7CisgICAgYXV0byBpbmN1YmF0aW5nV3Jh
cHBlciA9IG1fd3JhcHBlZC0+bV9pbmN1YmF0aW5nV3JhcHBlci5nZXQoKTsKKyAgICBBU1NFUlQo
aW5jdWJhdGluZ1dyYXBwZXIpOworICAgIHJldHVybiBpbmN1YmF0aW5nV3JhcHBlcjsKK30KKwor
dm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkK
K3sKKyAgICBzdGF0aWNfY2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oY2VsbCkt
PkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKCk7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNS
aWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8g
b2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3Qp
LT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUo
KS0+c3VwcG9ydHNSaWNoU291cmNlSW5mbyhvYmopOworfQorCitib29sIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2U6OnNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVj
dCogb2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50ZXJydXB0U2NyaXB0KG9iaik7Cit9
CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1
dG8gb2JqID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmpl
Y3QpLT5pbmN1YmF0aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKS0+c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChvYmopOworfQorCitSdW50
aW1lRmxhZ3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6amF2YVNjcmlwdFJ1bnRpbWVG
bGFncyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganND
YXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0
aW5nKCk7CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+amF2YVNj
cmlwdFJ1bnRpbWVGbGFncyhvYmopOworfQorCitKU0M6OlNjcmlwdEV4ZWN1dGlvblN0YXR1cyBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTT2JqZWN0KiBvd25lcikKK3sKKyAg
ICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFs
T2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPnNjcmlwdEV4ZWN1dGlvblN0YXR1cyhvYmosIG93bmVyKTsKK30KKwordm9pZCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFs
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpz
Q2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJh
dGluZygpOworICAgIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+cmVwb3J0VmlvbGF0
aW9uRm9yVW5zYWZlRXZhbChvYmopOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoSlNHbG9iYWxPYmplY3QmIG9iamVjdCwg
UmVmPEpTQzo6TWljcm90YXNrPiYmIHRhc2spCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8SlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KCZvYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAg
b2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5xdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29w
KCpvYmosIFdURk1vdmUodGFzaykpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9i
YWxTY29wZSYgcmVhbG1HbG9iYWxTY29wZSkKK3sKKyAgICByZXR1cm4gdG9KUyhsZXhpY2FsR2xv
YmFsT2JqZWN0LCByZWFsbUdsb2JhbFNjb3BlKTsKK30KKworSlNWYWx1ZSB0b0pTKEpTR2xvYmFs
T2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9iYWxTY29wZSkKK3sKKyAg
ICBBU1NFUlQocmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCkpOworICAgIHJldHVybiAmcmVhbG1H
bG9iYWxTY29wZS53cmFwcGVyKCktPnByb3h5KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWMwYTY0ZDZiMjZjNmU3ZWJhYzA3NmVj
YWRhMWNkZDhhMzUwZWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCkBAIC0wLDAgKzEsODUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTRE9NV3Jh
cHBlci5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOworY2xhc3MgU2NyaXB0
TW9kdWxlTG9hZGVyOworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlIDogcHVi
bGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNET01H
bG9iYWxPYmplY3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2Vz
cz4KKyAgICBzdGF0aWMgdm9pZCBzdWJzcGFjZUZvcihKU0M6OlZNJikgeyBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB3
cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gKm1fd3JhcHBlZDsgfQorCisgICAgY29uc3QgSlNET01H
bG9iYWxPYmplY3QqIGluY3ViYXRpbmcoKSBjb25zdDsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCog
aW5jdWJhdGluZygpCisgICAgeworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGNvbnN0X2Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+
KHRoaXMpLT5pbmN1YmF0aW5nKCkpOworICAgIH0KKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKworICAgIHN0YXRpYyBjb25zdCBK
U0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CisK
KyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNj
cmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBKU0M6OlJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgSlNDOjpTY3JpcHRFeGVjdXRpb25TdGF0dXMgc2Ny
aXB0RXhlY3V0aW9uU3RhdHVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcChKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgUmVmPEpTQzo6TWljcm90YXNrPiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXBvcnRW
aW9sYXRpb25Gb3JVbnNhZmVFdmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKworcHJvdGVjdGVk
OgorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0
dXJlKiwgUmVmUHRyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYpOworICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopOworCisgICAgREVDTEFSRV9WSVNJVF9D
SElMRFJFTjsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4g
bV93cmFwcGVkOworfTsKKworLy8gUmV0dXJucyBhIEpTV29ya2VyR2xvYmFsU2NvcGUgb3IganNO
dWxsKCkKKy8vIEFsd2F5cyBpZ25vcmVzIHRoZSBleGVjU3RhdGUgYW5kIHBhc3NlZCBnbG9iYWxP
YmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgaXMgaXRzZWxmIGEgZ2xvYmFsT2JqZWN0IGFu
ZCB3aWxsIGFsd2F5cyB1c2UgaXRzIG93biBwcm90b3R5cGUgY2hhaW4uCitKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlJik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICpzY29wZSkgOiBKU0M6OmpzTnVsbCgp
OyB9CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSYpOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHNjb3BlKSB7
IHJldHVybiBzY29wZSA/IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6
anNOdWxsKCk7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDUz
OWFhMWRjMTJhZmNmZDRiMWVlNDZkM2VmZDE0NmMzYzg0MDMzNDEuLjBjNTQ3MjE3NGQyZjhkNGI1
OGMyNTU3MGY4YjM5NTdjZTdhM2NhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5k
aWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiYmIGltcGwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2Nv
cGVCYXNlLmNwcAppbmRleCAzZGM1NDljMTAzOTVkYjlhODU3OWFlYmNhODU0NmViZThjY2JhYTJj
Li43ZjRiOTYzYzE5OGQ3OGFhZGRkYjkyOWU1YzBiODFiYTMzMmU0N2MzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTY2LDYgKzY2LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICBudWxscHRy
LAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVj
dCwKIH07CiAKIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6SlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2xl
dEdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDkzY2UwOTAyYzU3YjA1NTQ4NGJiNTQzNDQx
NzM4OTMyZDQ2YmEzLi5lZTNiNTM4ZDc5MTNkZDc2NmY1ZTZiMjYyYzcyNDczM2I2ZDhhZmEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29k
ZS5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTdWJy
ZXNvdXJjZUludGVncml0eS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNp
bmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKQEAgLTc0LDYgKzc1LDEzIEBAIFNj
cmlwdE1vZHVsZUxvYWRlcjo6flNjcmlwdE1vZHVsZUxvYWRlcigpCiAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4g
U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiByZWFsbUdsb2JhbCkgY29uc3QKK3sKKyAgICBhdXRvIGxvYWRlciA9IFdURjo6bWFrZVVuaXF1
ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KG1fY29udGV4dCwgbV9vd25lclR5cGUpOworICAgIGxvYWRl
ci0+bV9zaGFkb3dSZWFsbUdsb2JhbCA9IHJlYWxtR2xvYmFsOworICAgIHJldHVybiBsb2FkZXI7
Cit9CisKIHN0YXRpYyBib29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1
bGVLZXkpCiB7CiAgICAgcmV0dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1w
b3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQoKTsKQEAgLTI0NCw3ICsyNTIsOSBAQCBKU0M6OkpT
VmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBq
c0dsb2JhbE9iamVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxl
IGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKG1fb3duZXJUeXBlID09IE93
bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICBpZiAobV9zaGFkb3dSZWFsbUdsb2JhbCkgeworICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUobV9z
aGFkb3dSZWFsbUdsb2JhbCwgYXdhaXRlZFZhbHVlLCByZXN1bWVNb2RlKSk7CisgICAgfSBlbHNl
IGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CiAgICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCiAgICAg
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0
ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNvcmQsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9k
ZSkpOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5oCmluZGV4IGU4MmE4YmI0MzM3MWVhNmNhYjhmY2ZhODQyNGQ4N2ViM2M5
ODYzMTguLjM5YzhkZDVhNTFkMGRhOTVmMjM3NTU5YmU5ZjBkMzFlZTJkYzM0N2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC01NSw2
ICs1NSw4IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigp
OwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gc2hhZG93UmVhbG1M
b2FkZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogcmVhbG1HbG9iYWwpIGNvbnN0OworCiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAg
ICAgSlNDOjpJZGVudGlmaWVyIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9y
dGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CkBAIC03Myw2ICs3NSw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcDsKICAgICBIYXNoU2V0PFJlZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRl
cnM7CiAgICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOworICAgIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IG1fc2hhZG93UmVhbG1HbG9iYWwgeyBudWxscHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlND
bGllbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVu
dERhdGEuY3BwCmluZGV4IDZkNDZiMTU0MzU2MTY1MjQ1MDE3OWIwNzQ3Y2RiODc0YjJlZGVkNzEu
LjQ5YjAyYmYwZTc2MDMwYjA2ZmQ1OWE3NmZlNTYwNTQ3MWEyZjZhZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgIkpTUmVtb3RlRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
ICJKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5o
IgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTY4LDYgKzY5LDcgQEAgSlNW
TUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICAgICAsIG1faGVhcENlbGxUeXBl
Rm9ySlNSZW1vdGVET01XaW5kb3coSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNSZW1vdGVE
T01XaW5kb3c+KCkpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNXb3JrZXJHbG9iYWxTY29wZT4oKSkKICAgICAs
IG1faGVhcENlbGxUeXBlRm9ySlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBD
ZWxsVHlwZTo6QXJnczxKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlPigpKQorICAgICwgbV9oZWFw
Q2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6
OkFyZ3M8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCkp
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVK
U0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVu
dERhdGEuaAppbmRleCA4MDM2NmEwYzdmNzIyMDIzZjc5MzgxNGFmNmVhNTcxMWRhOTg0Nzc3Li4z
N2M5YTFlNjY0ZGY4NWZiYmRlNjMzMTY5MTE0OGM3YzYyNjY4N2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC0xMDEsNiArMTAx
LDcgQEAgcHVibGljOgogICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9y
SlNSZW1vdGVET01XaW5kb3c7CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5
cGVGb3JKU1dvcmtlckdsb2JhbFNjb3BlOwogICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVh
cENlbGxUeXBlRm9ySlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTsKKyAgICBKU0M6Oklzb0hlYXBD
ZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2Vs
bFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxYTcy
YjU0YjdhZmIzMDc5YzU1MDA3YTY4YzA4ODJjMjQyYTg5NThjLi45NzEzNTEyN2FlMWZlZDgwMTIz
YmI2Y2RkYWZhNjgyZGI5MzQxMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzYwLDcgKzc2MCw3IEBAIHN1YiBHZXRD
dXN0b21Jc1JlYWNoYWJsZQogc3ViIElzRE9NR2xvYmFsT2JqZWN0CiB7CiAgICAgbXkgJGludGVy
ZmFjZSA9IHNoaWZ0OwotICAgIHJldHVybiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJET01X
aW5kb3ciIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIgfHwg
JGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9i
YWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2xldEdsb2JhbFNjb3BlIikgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiVGVz
dEdsb2JhbE9iamVjdCI7CisgICAgcmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRP
TVdpbmRvdyIgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8
fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckds
b2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZh
Y2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0
R2xvYmFsT2JqZWN0IjsKIH0KIAogc3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQpA
QCAtNzc1LDYgKzc3NSwxMyBAQCBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCiAg
ICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwogfQogCitzdWIgU2hvdWxk
VXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7
CisKKyAgICByZXR1cm4gJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QoKSB8fCAkaW50ZXJm
YWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIjsKK30KKwogc3ViIEdl
bmVyYXRlSW5kZXhlZEdldHRlcgogewogICAgIG15ICgkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRl
ck9wZXJhdGlvbiwgJGluZGV4RXhwcmVzc2lvbikgPSBAXzsKQEAgLTI4NzEsNyArMjg3OCw3IEBA
IHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAg
ICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIH1cblxuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2Rl
R2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNj
b3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9i
YWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGwsIEpTQzo6SlNQ
cm94eSogcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4i
KTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRy
ID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPih2bSkpICR7Y2xh
c3NOYW1lfSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKTtcbiIpOwpAQCAtMjkxMyw3ICsy
OTIwLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Oklt
cGxlbWVudHNIYXNJbnN0YW5jZSB8IEpTQzo6SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSJ9
ID0gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsKICAgICAgICAgCiAgICAgIyBQ
cm90b3R5cGUKLSAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSgkaW50
ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIHVubGVzcyAo
U2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8IFNob3VsZFVzZU9y
ZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Jik7XG4iKTsKICAgICB9CkBAIC0zMTcwLDcgKzMxNzcsNyBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKICAgICAjIENvbnN0cnVjdG9yCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlND
OjpTdHJ1Y3R1cmUqLCBSZWY8JGltcGxUeXBlPiYmLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAg
ICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwg
Ildvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNl
KCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFs
U2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUo
SlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPCRpbXBsVHlwZT4mJik7XG4iKTsKICAgICB9
IGVsc2lmICghTmVlZHNJbXBsZW1lbnRhdGlvbkNsYXNzKCRpbnRlcmZhY2UpKSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0Jik7XG5cbiIpOwpAQCAtMzE4MCw3ICszMTg3LDcgQEAgc3ViIEdlbmVy
YXRlSGVhZGVyCiAKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGlu
dGVyZmFjZU5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU1dpbmRvd1Byb3h5
Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2Uo
JGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0g
ZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29k
ZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNj
b3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJX
b3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopO1xuIik7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mKTtcbiIpOwpAQCAtMzk1OSw2ICszOTY2LDggQEAgc3ViIEdlbmVyYXRl
UnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nRm9yRXhwb3NlZAogICAgICAgICBwdXNoKEAk
Y29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQ
dHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkiKTsKICAgICB9
IGVsc2lmICgkZXhwb3NlZCBlcSAiV29ya2VyIikgewogICAgICAgICBwdXNoKEAkY29uanVuY3Rz
LCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckdsb2JhbFNjb3BlKCkiKTsKKyAgICB9
IGVsc2lmICgkZXhwb3NlZCBlcSAiU2hhZG93UmVhbG0iKSB7CisgICAgICAgIHB1c2goQCRjb25q
dW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAu
ICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgp
Iik7CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIldvcmtsZXQiKSB7CiAgICAgICAgIHB1c2go
QCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVj
dFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzV29ya2xldEdsb2JhbFNjb3Bl
KCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAiQXVkaW9Xb3JrbGV0IikgewpAQCAtNDQ5
OCw3ICs0NTA3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgJGhhc2hT
aXplKys7CiAgICAgfQogCi0gICAgaWYgKCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkg
eworICAgIGlmICghU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkp
IHsKICAgICAgICAgbXkgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkgPSAhSXNET01HbG9iYWxPYmpl
Y3QoJGludGVyZmFjZSk7CiAKICAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNs
YXNzTmFtZSwgJGhhc2hOYW1lLCAkaGFzaFNpemUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxz
LCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRl
Q29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSk7CkBAIC00NTExLDcgKzQ1MjAs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7XG4iKTsKICAgICB9CiAKLSAgICBpZiAo
UHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJ
bnRlcmZhY2UoJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7
CisgICAgaWYgKFByb3RvdHlwZUhhc1N0YXRpY1Byb3BlcnR5VGFibGUoJGludGVyZmFjZSkgJiYg
IUlzR2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpICYmICFTaG91bGRVc2VPcmRpbmFyeU9iamVj
dFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sICR7Y2xhc3NOYW1lfTo6aW5mbygpLCAke2NsYXNz
TmFtZX1Qcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpO1xuIik7CiAKICAgICAgICAgbXkgQHJ1
bnRpbWVFbmFibGVkUHJvcGVydGllcyA9IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnM7CkBAIC00
NTkyLDcgKzQ2MDEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgYXNzZXJ0
KCJKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKSByZXF1aXJlcyBzdHJpbmdz
IHR3byBvciBtb3JlIGNoYXJhY3RlcnMgbG9uZyIpIGlmIGxlbmd0aCgkdmlzaWJsZUludGVyZmFj
ZU5hbWUpIDwgMjsKIAotICAgIGlmICghJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsK
KyAgICBpZiAoIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhP
VVRfVFJBTlNJVElPTigpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4i
KTsKICAgICB9CkBAIC00NjI0LDcgKzQ2MzMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0s
IHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSwgcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwot
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZh
Y2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9i
YWxTY29wZSIpKSB7CiAgICAgICAgIEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlSW5J
bXBsKCRpbnRlcmZhY2VOYW1lKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNz
TmFtZX06OiRjbGFzc05hbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBs
VHlwZT4mJiBpbXBsKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBh
cmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKVxuIik7CkBAIC00NjQ1
LDcgKzQ2NTQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
V2luZG93UHJveHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtLCBwcm94eSk7XG5cbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0
c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIp
KSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGlu
dGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSog
cHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtc
blxuIik7CkBAIC00NzQ1LDcgKzQ3NTQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHZtLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxv
Y2F0ZWQod3JhcHBlZCgpLm1lbW9yeUNvc3QoKSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1lbW9yeUNvc3R9OwogICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKIAotICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90
eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAg
dW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hv
dWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUo
Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRU
eXBlKSB7CkBAIC03NTA3LDcgKzc1MTYsNyBAQCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJh
dGlvbgogewogICAgIG15ICgkb3V0cHV0QXJyYXksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0g
QF87CiAKLSAgICByZXR1cm4gaWYgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisgICAg
cmV0dXJuIGlmIFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpOwog
CiAgICAgbXkgJHByb3RvdHlwZUNsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwog
CkBAIC03NzgzLDcgKzc3OTIsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhv
ZHMKICAgICBpZiAoISRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uIGFuZCAkaW50ZXJm
YWNlLT5wYXJlbnRUeXBlKSB7CiAgICAgICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4g
JGludGVyZmFjZS0+cGFyZW50VHlwZS0+bmFtZTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHJldHVybiAke3BhcmVudENsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xv
YmFsT2JqZWN0KTtcbiIpOwotICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2Jq
ZWN0KSB7CisgICAgfSBlbHNpZiAoU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGlu
dGVyZmFjZSkpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9P
YmplY3RQcm90b3R5cGUuaD4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVO
VVNFRF9QQVJBTSh2bSk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJl
dHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNWI4OTMx
M2ZlNWNhZWZiODkxMmZiNDM2ZjE0NzY4MmYwNDc1NzdiYS4uNzQxYTU4YjE5ZjEyOGRlNGYwOWIx
Y2I1NjZjZjUxYTkxZWQ3ZjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbXkgJGlzb1N1YnNw
YWNlc0hlYWRlckZpbGU7CiBteSAkY29uc3RydWN0b3JzSGVhZGVyRmlsZTsKIG15ICR3aW5kb3dD
b25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsK
K215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRkZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU7CkBAIC02NSw3ICs2Niw4IEBAIG15IEBzdXBwb3J0ZWRHbG9iYWxDb250
ZXh0cyA9ICgKICAgICAiRGVkaWNhdGVkV29ya2VyIiwKICAgICAiU2VydmljZVdvcmtlciIsCiAg
ICAgIlBhaW50V29ya2xldCIsCi0gICAgIkF1ZGlvV29ya2xldCIKKyAgICAiQXVkaW9Xb3JrbGV0
IiwKKyAgICAiU2hhZG93UmVhbG0iLAogKTsKIAogIyBUb2dnbGUgdGhpcyB0byB2YWxpZGF0ZSB0
aGF0IHRoZSBmYXN0IHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCAicGFyc2luZyIgdXNlZApAQCAt
ODIsNiArODQsNyBAQCBHZXRPcHRpb25zKCdkZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAg
ICAgICAgJ2NvbnN0cnVjdG9yc0hlYWRlckZpbGU9cycgPT4gXCRjb25zdHJ1Y3RvcnNIZWFkZXJG
aWxlLAogICAgICAgICAgICAnd2luZG93Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdpbmRvd0Nv
bnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICd3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGU9cycgPT4gXCR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAg
ICAgICdzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnZGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkZGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnc2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCkBAIC05OCw2ICsxMDEsNyBAQCBkaWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3Jv
cyB1c2luZyAtLWRlZmluZXMuJykgdW5sZXNzIGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0
IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5Rmls
ZS4nKSB1bmxlc3MgZGVmaW5lZCgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpOwogZGllKCdN
dXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxl
LicpIHVubGVzcyBkZWZpbmVkKCR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBz
cGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUpOworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2hhZG93UmVh
bG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0
cHV0IGZpbGUgdXNpbmcgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUuJykgdW5sZXNzIGRlZmluZWQoJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNp
ZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSk7CkBAIC0xMTMsNiArMTE3LDcgQEAgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUg
PSBDeWd3aW5QYXRoSWZOZWVkZWQoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpOwogJGNvbnN0cnVj
dG9yc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGNvbnN0cnVjdG9yc0hlYWRlckZp
bGUpOwogJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdpbmRv
d0NvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9
IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsK
KyRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5l
ZWRlZCgkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJGRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTE1NCw2ICsxNTksNyBAQCBteSAlZGljdGlvbmFyeURl
cGVuZGVuY2llczsKIG15ICVzdXBwbGVtZW50YWxzOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0Nv
ZGUgPSAiIjsKIG15ICR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215
ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRzaGFyZWRXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKQEAgLTI3Miw2ICsyNzgsOCBAQCBmb3Jl
YWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICAgICAg
ICAgICAgICAgICAkd2luZG93Q29uc3RydWN0b3JzQ29kZSAuPSAkd2luZG93QWxpYXNlcyBpZiAk
d2luZG93QWxpYXNlczsKICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJX
b3JrZXIiKSB7CiAgICAgICAgICAgICAgICAgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSAuPSAkYXR0cmlidXRlQ29kZTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250
ZXh0IGVxICJTaGFkb3dSZWFsbSIpIHsKKyAgICAgICAgICAgICAgICAkc2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9
IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiRGVkaWNhdGVkV29ya2VyIikgewogICAgICAgICAg
ICAgICAgICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0
dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2Vy
dmljZVdvcmtlciIpIHsKQEAgLTMwMyw2ICszMTEsNyBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFt
ZSAoc29ydCBrZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICMgR2VuZXJhdGUgcGFydGlhbCBpbnRl
cmZhY2VzIGZvciBDb25zdHJ1Y3RvcnMuCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRPTVdp
bmRvdyIsICR3aW5kb3dDb25zdHJ1Y3RvcnNDb2RlLCAkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7
CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldvcmtlckdsb2JhbFNjb3BlIiwgJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUi
LCAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRzaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIs
ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2Uo
IlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlIiwgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSwgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZWUzN2Q0
MWRkYmNmZDczYTIzYzJhNjlkYzMzZWE4Y2ZiZGNkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlLmNwcApAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdl
bmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMu
aCIKKyNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgorI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCisjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiSlNF
eHBvc2VkU3Rhci5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUds
b2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXBBbmFseXplci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Rlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3Rv
dHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yTWFjcm9zLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Vic3BhY2VJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CisjaW5jbHVk
ZSA8d3RmL1VSTC5oPgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBK
U0M7CisKKy8vIEF0dHJpYnV0ZXMKKworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3Ry
dWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CisKK3VzaW5nIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGU8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPjsKKworLyogSGFzaCB0YWJs
ZSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlVGFibGVJbmRleFs1XSA9IHsKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEs
IC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDAsIDQgfSwKKyAgICB7IDEsIC0xIH0sCit9
OworCisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVUYWJsZVZhbHVlc1tdID0KK3sKKyAgICB7ICJFeHBvc2VkU3RhciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAi
U2hhZG93UmVhbG1HbG9iYWxTY29wZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
X1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBj
b25zdCBIYXNoVGFibGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGUgPSB7IDIsIDMsIHRy
dWUsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6aW5mbygpLCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVUYWJsZVZhbHVlcywgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRleCB9Owor
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9OworCit0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0odm0pOworICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90
eXBlKCk7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01D
b25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQoreworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgSlNTdHJpbmcqIG5hbWVTdHJp
bmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIl9zKTsK
KyAgICBtX29yaWdpbmFsTmFtZS5zZXQodm0sIHRoaXMsIG5hbWVTdHJpbmcpOworICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwgbmFtZVN0cmluZywgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7
CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdsb2JhbE9i
amVjdC5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSk7Cit9CisKK2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OnNfaW5mbyA9IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6
c19pbmZvLCAmSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGUsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKSB9OworCitKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsKQorICAgIDogSlNE
T01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUo
aW1wbCkpCit7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTUHJveHkqIHByb3h5KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtLCBwcm94eSk7CisKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZl
RE9NT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMg
bm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlv
biBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKKworfQorCitKU1ZhbHVlIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3Rv
cjxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvciwgRE9NQ29uc3RydWN0b3JJ
RDo6U2hhZG93UmVhbG1HbG9iYWxTY29wZT4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpKTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Kj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp+SlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlKCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
Cit7CisgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVByb3RvdHlwZSo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgaWYgKFVOTElLRUxZKCFwcm90
b3R5cGUpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOworfQorCitzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3JHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZSYgdGhpc09iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CisgICAgcmV0dXJuIEpTRXhwb3NlZFN0YXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZT46OmdldDxqc1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOworICAgIHJldHVybiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVj
dCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IGF0dHJpYnV0ZU5hbWUpKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPjo6Z2V0PGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGF0dHJpYnV0ZU5hbWUpOworfQorCitKU0M6Oklzb1N1YnNwYWNlKiBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKK3sKKyAgICBhdXRvJiBj
bGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7
CisgICAgYXV0byYgc3BhY2VzID0gY2xpZW50RGF0YS5zdWJzcGFjZXMoKTsKKyAgICBpZiAoYXV0
byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0
KCkpCisgICAgICAgIHJldHVybiBzcGFjZTsKKyAgICBzcGFjZXMubV9zdWJzcGFjZUZvclNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0Vf
SU5JVCh2bS5oZWFwLCBjbGllbnREYXRhLm1faGVhcENlbGxUeXBlRm9ySlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlLCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOworICAgIGF1dG8qIHNwYWNlID0g
c3BhY2VzLm1fc3Vic3BhY2VGb3JTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmdldCgpOworSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKK0lHTk9SRV9XQVJOSU5HU19CRUdJ
TigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQorICAgIHZvaWQgKCpteVZpc2l0T3V0cHV0Q29uc3Ry
YWludCkoSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikgPSBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGU6OnZpc2l0T3V0cHV0Q29uc3RyYWludHM7CisgICAgdm9pZCAoKmpzQ2VsbFZpc2l0
T3V0cHV0Q29uc3RyYWludCkoSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikgPSBKU0M6
OkpTQ2VsbDo6dmlzaXRPdXRwdXRDb25zdHJhaW50czsKKyAgICBpZiAobXlWaXNpdE91dHB1dENv
bnN0cmFpbnQgIT0ganNDZWxsVmlzaXRPdXRwdXRDb25zdHJhaW50KQorICAgICAgICBjbGllbnRE
YXRhLm91dHB1dENvbnN0cmFpbnRTcGFjZXMoKS5hcHBlbmQoc3BhY2UpOworSUdOT1JFX1dBUk5J
TkdTX0VORAorSUdOT1JFX1dBUk5JTkdTX0VORAorICAgIHJldHVybiBzcGFjZTsKK30KKwordm9p
ZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmFuYWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVh
cEFuYWx5emVyJiBhbmFseXplcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZSo+KGNlbGwpOworICAgIGFuYWx5emVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGFuYWx5emVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnVybCgpLnN0cmluZygpKTsKKyAgICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFs
eXplcik7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgQWJzdHJhY3RTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sK
KyAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKKyAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKK3sKKyAgICBhdXRvKiBqc1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGUgPSBzdGF0aWNfY2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihoYW5k
bGUuc2xvdCgpLT5hc0NlbGwoKSk7CisgICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9N
V3JhcHBlcldvcmxkKj4oY29udGV4dCk7CisgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUtPndyYXBwZWQoKSwganNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KTsKK30KKworU2hhZG93UmVhbG1HbG9iYWxTY29wZSogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAo
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4o
dm0sIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iY2ZlMjNmMzA4MDQwMTMyMDNlMzFhMWI0MWJlYTZkNTk1YTg3MGQ2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMg
ZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBN
T0RJRlkhCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUgOiBwdWJsaWMgSlNET01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKK3B1
YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNET01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU+OworICAgIHN0YXRpYyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIGNyZWF0ZShKU0M6OlZN
JiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU+JiYgaW1wbCwgSlNDOjpKU1Byb3h5KiBwcm94eSkKKyAgICB7CisgICAgICAgIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+KHZtKSkgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKHZt
LCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9u
KHZtLCBwcm94eSk7CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisgICAgc3RhdGljIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsK
KyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lO
Rk87CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6R2xvYmFsT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFj
ZUFjY2VzcyBtb2RlPiBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpW
TSYgdm0pCisgICAgeworICAgICAgICBpZiBjb25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFj
ZUFjY2Vzczo6Q29uY3VycmVudGx5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBzdWJzcGFjZUZvckltcGwodm0pOworICAgIH0KKyAgICBzdGF0aWMgSlNDOjpJ
c29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKTsKKyAgICBzdGF0aWMgdm9p
ZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKK3Byb3RlY3RlZDoKKyAgICBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTQzo6SlNQcm94eSopOworfTsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
T3duZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworcHVibGljOgorICAg
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpBYnN0cmFjdFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
KSBmaW5hbDsKKyAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQpIGZpbmFsOworfTsKKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3
cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSopCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVy
PiBvd25lcjsKKyAgICByZXR1cm4gJm93bmVyLmdldCgpOworfQorCitpbmxpbmUgdm9pZCogd3Jh
cHBlcktleShTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiB3cmFwcGFibGVPYmplY3QpCit7CisgICAg
cmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKK30KKworCit0ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdy
YXBwZXJDb252ZXJ0ZXJUcmFpdHM8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworICAgIHVzaW5n
IFdyYXBwZXJDbGFzcyA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKKyAgICB1c2luZyBUb1dy
YXBwZWRSZXR1cm5UeXBlID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZSo7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlODEyZjA0ODY0NjZjZDhlNGQ5NzE2
MmI0Y2RkM2Y2MzJkMmRlODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
LmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBp
bmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oIGFuZAorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAg
d2VyZSBjcmVhdGVkIGZvciBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwg
YW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVy
YXRlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZTgxMmYwNDg2NDY2Y2Q4ZTRkOTcxNjJiNGNkZDNmNjMyZDJkZTg4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAg
ICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kCisgICAgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAgICBz
Y3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmggYW5kIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5j
cHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU2NzZkZDdmMWZlN2E5YWNkOTY5ZTYwY2EwZThkOWNmZWJlMTRmOTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5pZGwKQEAgLTAsMCArMSwyIEBACitbRXhwb3NlZD1TaGFkb3dSZWFsbV0g
aW50ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2U0ODcxMzE2
ZDZhMDczNDI3NmQzYjRlOTQ5OGY3MDRmNmM1YTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuaWRsCkBAIC0wLDAgKzEsNCBAQAorcGFydGlhbCBpbnRlcmZhY2UgU2hhZG93UmVh
bG1HbG9iYWxTY29wZSB7CisgICAgYXR0cmlidXRlIEV4cG9zZWRTdGFyQ29uc3RydWN0b3IgRXhw
b3NlZFN0YXI7CisgICAgYXR0cmlidXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
ciBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2ll
cy5kZXAKaW5kZXggYzEyMzIxNTI0NjFhNmMyZWQyZTU0ODBhMmU3YzZkYjY4ODRiYTQ2My4uZTMx
ZTBmNTgyM2NlY2RjNTBjY2JiYzRmN2YyNjE2NzJhYzBlNzEzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5k
ZXAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRh
bERlcGVuZGVuY2llcy5kZXAKQEAgLTIxLDYgKzIxLDEwIEBAIEpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmg6IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIERPTVNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCiBXZWJET01TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbDoKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorRE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorV2ViRE9NU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGw6CiBKU1NoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGUuaDogU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBXZWJET01TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oOiBTaGFyZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCmluZGV4IDM1MzNjMjBlMmVlNTc5NjBiNTRiZmUxNTM2ZGUzZmIyZjhjY2Ex
ODYuLjJhYWI3YjYyNTllN2YxMjkzYTgwMWY4YjMwZTI5OGQyMmVjN2NjNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtOTQsNiArOTQsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtsZXRHbG9i
YWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXND
b250ZXh0VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMzEyLDYgKzMxMyw3IEBA
IHByaXZhdGU6CiAgICAgLy8gQ2FsbGVycyBzaG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29s
ZU1lc3NhZ2UgdGhlbXNlbHZlcy4KICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwg
UmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29s
dW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpID0gMDsKKwog
ICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVkU2NyaXB0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVm
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhN2Q1NThiMmEyNDc2OTE3ZjUy
MTIwZGQ1ZDY4NmM3Nzc5MDZkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkpT
RE9NR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgi
CisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoU2hhZG93UmVhbG1HbG9iYWxTY29wZSk7CisKK1JlZlB0cjxTaGFkb3dSZWFsbUds
b2JhbFNjb3BlPiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoSlNET01HbG9iYWxP
YmplY3QqIHdyYXBwZXIsIFNjcmlwdE1vZHVsZUxvYWRlciogbG9hZGVyKQoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2hhZG93UmVhbG1HbG9iYWxTY29wZSh3cmFwcGVyLCBsb2FkZXIpKTsK
K30KKworU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6U2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0RP
TUdsb2JhbE9iamVjdCogd3JhcHBlciwgU2NyaXB0TW9kdWxlTG9hZGVyKiBsb2FkZXIpCisgICAg
OiBtX2luY3ViYXRpbmdXcmFwcGVyKHdyYXBwZXIpCisgICAgLCBtX3BhcmVudExvYWRlcihsb2Fk
ZXIpCit7IH0KKworU2NyaXB0TW9kdWxlTG9hZGVyJiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpt
b2R1bGVMb2FkZXIoKQoreworICAgIGlmIChtX21vZHVsZUxvYWRlcikKKyAgICAgICAgcmV0dXJu
ICptX21vZHVsZUxvYWRlcjsKKworICAgIGF1dG8gd3JhcHBlciA9IG1fd3JhcHBlci5nZXQoKTsK
KyAgICBBU1NFUlQod3JhcHBlcik7CisKKyAgICBtX21vZHVsZUxvYWRlciA9IG1fcGFyZW50TG9h
ZGVyLT5zaGFkb3dSZWFsbUxvYWRlcih3cmFwcGVyKTsKKyAgICByZXR1cm4gKm1fbW9kdWxlTG9h
ZGVyOworfQorCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjp3cmFwcGVyKCkKK3sKKyAgICByZXR1cm4gbV93cmFwcGVyLmdldCgpOworfQorCitT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIHsgfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NjVlYTQ5ODdiMzRhZTUyYzJlY2UxNjUwMjQ1MDM0
ODAwMTRjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ry
b25nLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvV2Vhay5oPgorI2luY2x1ZGUgPG1lbW9y
eT4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBKU0MgeyBjbGFzcyBWTTsg
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRl
cjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiB7Cisg
ICAgZnJpZW5kIGNsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U7CisgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKKworcHVibGljOgorICAg
IHN0YXRpYyBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gdHJ5Q3JlYXRlKEpTRE9NR2xv
YmFsT2JqZWN0KiwgU2NyaXB0TW9kdWxlTG9hZGVyKik7CisgICAgflNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUoKTsKKworICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHNlbGYoKSB7IHJldHVybiAq
dGhpczsgfQorICAgIFNjcmlwdE1vZHVsZUxvYWRlciYgbW9kdWxlTG9hZGVyKCk7CisgICAgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSogd3JhcHBlcigpOworCitwcm90ZWN0ZWQ6CisgICAg
U2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0RPTUdsb2JhbE9iamVjdCosIFNjcmlwdE1vZHVsZUxv
YWRlciopOworCitwcml2YXRlOgorICAgIEpTQzo6V2VhazxKU0RPTUdsb2JhbE9iamVjdD4gbV9p
bmN1YmF0aW5nV3JhcHBlcjsKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXIqIG1fcGFyZW50TG9hZGVy
OworICAgIEpTQzo6V2VhazxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPiBtX3dyYXBwZXIg
eyB9OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9h
ZGVyIHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MDZmZDRjMzg1
ZGY2YTkxMzFiMzdhYjk4MjkxMDZhMzJkZmMwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCkBAIC0wLDAgKzEsMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCitbCisg
ICAgRXhwb3NlZD1TaGFkb3dSZWFsbSwKKyAgICBKU0xlZ2FjeVBhcmVudD1KU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlLAorICAgIEdsb2JhbD1TaGFkb3dSZWFsbSwKKyAgICBMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdCwKK10gaW50ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgeworICBy
ZWFkb25seSBhdHRyaWJ1dGUgU2hhZG93UmVhbG1HbG9iYWxTY29wZSBzZWxmOworfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZTE0NTcwY2Ex
MGFiNThkMDAxZTMzOTc2ZDcwYzU1ZWFhNDg0YTdiLi42ZDEyMDI3ZDM3NTIwYmViMmI2MjJhYjk1
ZGNiZWU4Njk1YTVhZDllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTItMTAgIEpvc2VwaCBHcmllZ28gIDxq
Z3JpZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NoYWRvdyBSZWFsbXNdIFVzZSBXZWJDb3Jl
IG1vZHVsZSBsb2FkZXJzIGZvciBzaGFkb3cgcmVhbG0gaW1wb3J0VmFsdWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDE1NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
aW5kaW5ncy9tYWluLnB5OgorICAgICAgICAoQmluZGluZ3NUZXN0cy5nZW5lcmF0ZV9zdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeSk6CisgICAgICAgIChCaW5kaW5nc1Rlc3RzLm1haW4pOgorCiAyMDIx
LTEyLTA4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gV2Vi
IEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVu
dHMgdG8gYmUgdG8gbm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CmluZGV4IDAyMmQwOWU4NjkzMTFmMDA0
NDM0MDk2OWNhMzQ5ODVjYjcyMGVhNTcuLmNlOGI1MDYzMTBmMTk3ZDI1M2E1YjUxODU5ZjE3ZDZl
MzE5ZDVhN2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFp
bi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKQEAgLTcy
LDcgKzcyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgIGV4aXRfY29kZSA9
IGUuZXhpdF9jb2RlCiAgICAgICAgIHJldHVybiBleGl0X2NvZGUKIAotICAgIGRlZiBnZW5lcmF0
ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1l
bnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2Zp
bGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBz
ZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRp
b3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlKToKKyAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBz
dXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFkb3dyZWFsbWds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgIGlkbF9maWxlc19s
aXN0ID0gdGVtcGZpbGUubWtzdGVtcCgpCiAgICAgICAgIGZvciBpbnB1dF9maWxlIGluIG9zLmxp
c3RkaXIoaW5wdXRfZGlyZWN0b3J5KToKICAgICAgICAgICAgIChuYW1lLCBleHRlbnNpb24pID0g
b3MucGF0aC5zcGxpdGV4dChpbnB1dF9maWxlKQpAQCAtOTQsNiArOTQsNyBAQCBjbGFzcyBCaW5k
aW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzJywg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwKICAgICAgICAgICAgICAgICct
LXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUnLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAg
ICAgICAgICAgICAnLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCB3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKKyAgICAgICAgICAgICAgICctLXNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLWRlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZScsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwKICAgICAgICAgICAgICAgICctLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZScsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLApAQCAt
MTk5LDYgKzIwMCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHN1cHBsZW1lbnRh
bF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGVuYW1lID0gJ1N1cHBsZW1lbnRhbERlcGVuZGVuY2ll
cy5kZXAnCiAgICAgICAgIGRvbV93aW5kb3dfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0RPTVdp
bmRvd0NvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSA9ICdXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCisgICAg
ICAgIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBkZWRpY2F0ZWR3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCiAgICAgICAgIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlbmFtZSA9ICdTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCkBA
IC0yMTMsNiArMjE1LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc3VwcGxlbWVu
dGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9y
eSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVt
ZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlbmFtZSkKICAgICAgICAgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIGRvbV93aW5kb3dfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKQogICAgICAgICB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9
IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVs
c2UgaW5wdXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5h
bWUpCisgICAgICAgIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBz
ZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNoYXJlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKQEAgLTIyMSw3ICsyMjQsNyBAQCBjbGFzcyBC
aW5kaW5nc1Rlc3RzOgogICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9y
ZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1
bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lKQogCi0gICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVt
ZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUs
IHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwg
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgICAgIGlm
IHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5LCBz
dXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5k
ZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSk6CiAgICAgICAgICAgICBwcmludCgnRmFpbGVkIHRvIGdlbmVyYXRlIGEgc3VwcGxl
bWVudGFsIGRlcGVuZGVuY3kgZmlsZS4nKQogICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSh3b3Jr
X2RpcmVjdG9yeSkKICAgICAgICAgICAgIHJldHVybiAtMQpAQCAtMjMzLDYgKzIzNiw4IEBAIGNs
YXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZh
bHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3Bl
Jywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0g
RmFsc2UKKyAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2Nv
cGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBzaGFkb3dyZWFsbWdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CisgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2ds
b2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBh
bGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVf
Y2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBz
ZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAy
MTBhNWNlMWU4YjAzNjRlMDZhNDZjM2Q0MzljYTVkMDkzZjFmOTkzLi5kYzgzZTBhZDk5ZTBhZjY3
YjQxYzAyZjdiN2EyZmE3NjhkMDZlODQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTIt
MTAgIEpvc2VwaCBHcmllZ28gIDxqZ3JpZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NoYWRv
dyBSZWFsbXNdIFVzZSBXZWJDb3JlIG1vZHVsZSBsb2FkZXJzIGZvciBzaGFkb3cgcmVhbG0gaW1w
b3J0VmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNDE1NQorCisgICAgICAgIEltcHJvdmUgdGVzdCBjb3ZlcmFnZSBhIGJpdCBmb3Igc2hhZG93
IHJlYWxtcywgZXNwZWNpYWxseSBydW5uaW5nIG5lc3RlZCBvciBpbiB3b3JrZXIgY29udGV4dHMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9T
aGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL1No
YWRvd1JlYWxtLWV2YWx1YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL1NoYWRvd1JlYWxt
LWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVh
bG0taW1wb3J0VmFsdWUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0td29y
a2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0td29ya2Vy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1ldmFs
dWF0ZS5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnRfY2xvc2VkX29wZW5lcik6CisgICAgICAg
IChwcm9taXNlX3Rlc3QuYXN5bmMgdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL1NoYWRv
d1JlYWxtLWltcG9ydFZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKHdyYXBwZWRMb2cpOgorICAg
ICAgICAocHJvbWlzZV90ZXN0LmFzeW5jIHQpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9l
eGFtcGxlLW1vZHVsZS5qczogQWRkZWQuCisgICAgICAgIChjaGVjayk6CisgICAgICAgIChsb2df
ZXF1YWwpOgorICAgICAgICAoY2hlY2tfbmVzdGVkKToKKyAgICAgICAgKHNldFZhbHVlKToKKyAg
ICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtlci5qczogQWRkZWQuCisg
ICAgICAgIChhc3NlcnRfZXF1YWxzKToKKyAgICAgICAgKGFzeW5jIHRlc3QpOgorICAgICAgICAo
YXN5bmMgYXdhaXQpOgorCiAyMDIxLTEyLTA5ICBNYXR0IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dA
Z21haWwuY29tPgogCiAgICAgICAgIFVucHJlZml4IC13ZWJraXQtbWFzawpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2
OTgwNDk3M2ZkZWFhY2NmYjRkYTMzYjYzZmRiOTM4MjVjZjc1MWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACitUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dSZWFs
bS5wcm90b3R5cGUuZXZhbHVhdGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKwor
UEFTUyB3aW5kb3cuY2xvc2UoKSBhZmZlY3RzIG5hbWUgdGFyZ2V0aW5nIGltbWVkaWF0ZWx5CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NmFh
ZTFkYWQ1OGMwYTA3OGNlMGQwN2JhMjk0YzZiMDczOWJjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9TaGFkb3dS
ZWFsbS1ldmFsdWF0ZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODYxNGM1NTVhODA4YjdiMmZmYjdmYzYxNzlmNzA3NDc0ODU3OWIyYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IDQyCitUZXN0IHRvIGVuc3Vy
ZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuaW1wb3J0VmFsdWUK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3NoYWRvd1JlYWxtOiBjYWxsaW5nIG5l
c3RlZCByZWFsbSB3cmFwcGVyIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitzaGFkb3dSZWFsbTog
bmVzdGVkIHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKKworUEFTUyBjYW4gaW1w
b3J0IG1vZHVsZSBpbiBhIHNoYWRvdyByZWFsbQorUEFTUyBjYW4gbmVzdCByZWFsbXMKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbCBiL0xh
eW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBk
OTcyYmY2OWMyMTI2YjA1ZTVhYzQ5MTFkMzZkMTVhYzdmNDU4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKQEAgLTAsMCArMSwx
MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAt
LT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1No
YWRvd1JlYWxtLWltcG9ydFZhbHVlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE5NjM3YjljNWRjMDEwMDRlNTQwNGY5MDk1ZWZlMDQ3YTIyNzgwNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMgdGhhdCBTaGFkb3cgUmVhbG0gQVBJcyBhcmUgYXZh
aWxhYmxlIGFuZCB3b3JrIHByb3Blcmx5IGluc2lkZSB3b3JrZXIgY29udGV4dHMKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogc2NyaXB0LXRlc3RzL3No
YWRvdy1yZWFsbS13b3JrZXIuanMKK1BBU1MgW1dvcmtlcl0gaW1wb3J0LXZhbHVlCitbV29ya2Vy
XSBzaGFkb3dSZWFsbTogY2FsbGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBlciB1c2VzIGNvcnJlY3Qg
Z2xvYmFsOiBPSworW1dvcmtlcl0gc2hhZG93UmVhbG06IG5lc3RlZCByZWFsbSBldmFsIHVzZXMg
Y29ycmVjdCBnbG9iYWw6IE9LCitQQVNTIFtXb3JrZXJdIG5lc3RlZAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVh
bG0td29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDUzYWM2NDdhYjU0NTk4N2JhNmU4NWQwMWQxMjAz
OGNmMjE5NWZjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxt
LXdvcmtlci5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9
LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdGhhdCBTaGFkb3cgUmVhbG0gQVBJcyBhcmUgYXZhaWxhYmxlIGFuZCB3
b3JrIHByb3Blcmx5IGluc2lkZSB3b3JrZXIgY29udGV4dHMiKTsKKyAgICAgICAgIGNvbnN0IHdv
cmtlciA9IHN0YXJ0V29ya2VyKCJzY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtlci5qcyIp
OworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYyA9Li4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYyA9Li4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1ldmFs
dWF0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yYmQ0OTNmZGYwNzZlOTg0MGMxYmZkNzM4NDZlZGQ2YWUxMjZi
NTIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRv
d1JlYWxtLWV2YWx1YXRlLmpzCkBAIC0wLDAgKzEsMjMgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRv
IGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuZXZhbHVh
dGUiKTsKKworZnVuY3Rpb24gYXNzZXJ0X2Nsb3NlZF9vcGVuZXIodywgY2xvc2VkLCBvcGVuZXIp
IHsKKyAgYXNzZXJ0X2VxdWFscyh3LmNsb3NlZCwgY2xvc2VkKTsKKyAgYXNzZXJ0X2VxdWFscyh3
Lm9wZW5lciwgb3BlbmVyKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBvcGVuZWUgPSB3aW5kb3cub3BlbigiIiwgImdyZWF0bmFtZSIpOworICBjb25zdCBvdXRlclNo
YWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisKKyAgLy8gc2V0dXAgcmVhbG0gbmVzdGVk
IGluIG91dGVyU2hhZG93UmVhbG0KKyAgb3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgidmFyIGlu
bmVyUmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsiKTsKKyAgb3V0ZXJTaGFkb3dSZWFsbS5ldmFs
dWF0ZSgidmFyIGNhbGxJbklubmVyID0gaW5uZXJSZWFsbS5ldmFsdWF0ZShcIihjYikgPT4gY2Io
KVwiKTsiKTsKKworICBjb25zdCBjYWxsSW5OZXN0ZWRSZWFsbSA9IG91dGVyU2hhZG93UmVhbG0u
ZXZhbHVhdGUoIihjYikgPT4gY2FsbEluSW5uZXIoY2IpIik7CisKKyAgLy8gY2FsbCBjbG9zZSB3
aW5kb3cgdHdvIGxldmVscyBkZWVwCisgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9wZW5lZSwgZmFs
c2UsIHNlbGYpOworICBjYWxsSW5OZXN0ZWRSZWFsbSgoKSA9PiBvcGVuZWUuY2xvc2UoKSk7Cisg
IC8vIG9wZW5lZS5jbG9zZSgpCisgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9wZW5lZSwgdHJ1ZSwg
c2VsZik7Cit9LCAid2luZG93LmNsb3NlKCkgYWZmZWN0cyBuYW1lIHRhcmdldGluZyBpbW1lZGlh
dGVseSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1Jl
YWxtLWltcG9ydFZhbHVlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1Jl
YWxtLWltcG9ydFZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhNWZlM2UyMTk3ZmFiODViZWRmNzZhNzBh
YWU4MGRkYjc2ZTMwN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanMKQEAgLTAsMCArMSwzMiBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnBy
b3RvdHlwZS5pbXBvcnRWYWx1ZSIpOworCitmdW5jdGlvbiB3cmFwcGVkTG9nKHByZWZpeCkgewor
ICAgIHJldHVybiBmdW5jdGlvbiAobXNnKSB7CisgICAgICAgIGRlYnVnKHByZWZpeCArICI6ICIg
KyBtc2cpOworICAgIH07Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qg
b3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICBjb25zdCBjaGVja0ZuID0g
YXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIs
ICJjaGVjayIpOworICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93UmVh
bG0iKSksIHRydWUpOworCisgIGNvbnN0IG91ck1vZHVsZSA9IGF3YWl0IGltcG9ydCgiLi9leGFt
cGxlLW1vZHVsZS5qcyIpOworICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwg
ImJsb29wIik7CisgIG91ck1vZHVsZS5zZXRWYWx1ZSg0Mik7CisgIGFzc2VydF9lcXVhbHMob3Vy
TW9kdWxlLnZhbHVlLCA0Mik7CisKKyAgY29uc3QgaW1wb3J0ZWRWYWwgPSBhd2FpdCBvdXRlclNo
YWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7Cisg
IGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwsIHRydWUpOworICBjb25zdCBzZXRWYWx1ZUltcG9y
dGVkID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVs
ZS5qcyIsICJzZXRWYWx1ZSIpOworICBzZXRWYWx1ZUltcG9ydGVkKDEwMCk7CisgIGNvbnN0IGlt
cG9ydGVkVmFsMiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBs
ZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEw
MCk7CisgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7Cit9LCAiY2FuIGltcG9y
dCBtb2R1bGUgaW4gYSBzaGFkb3cgcmVhbG0iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICBj
b25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFt
cGxlLW1vZHVsZS5qcyIsICJjaGVja19uZXN0ZWQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNoZWNr
Rm4od3JhcHBlZExvZygic2hhZG93UmVhbG0iKSksIHRydWUpOworfSwgImNhbiBuZXN0IHJlYWxt
cyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9k
dWxlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9kdWxlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUzMmViYzdhNTAzMGVkODA0MDEwMzJiMDgzOTUyOTM0OWU1MjhiZTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZXhhbXBsZS1tb2R1bGUu
anMKQEAgLTAsMCArMSwzMiBAQAordmFyIHZhbHVlID0gdHJ1ZTsKKwordmFyIGNoZWNrID0gZnVu
Y3Rpb24obG9nKSB7CisgICAgaWYgKE9iamVjdC5nZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzKSAh
PT0gT2JqZWN0LnByb3RvdHlwZSkgeworICAgICAgICBsb2coImdsb2JhbFRoaXMgcHJvdG90eXBl
IGlzIE9iamVjdC5wcm90b3R5cGUiKTsKKyAgICAgICAgbG9nKE9iamVjdC5nZXRQcm90b3R5cGVP
ZihnbG9iYWxUaGlzKS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gbG9nX2VxdWFsKGxvZywgbXNnLCB4LCB5
KSB7CisgICAgY29uc3QgcmVzdWx0ID0geCA9PSB5OworICAgIGxvZyhgJHttc2d9OiAke3Jlc3Vs
dCA/ICdPSycgOiAnRkFJTEVEJ31gKTsKK30KKwordmFyIGNoZWNrX25lc3RlZCA9IGZ1bmN0aW9u
KGxvZykgeworICAgIGNvbnN0IHNyID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgZ2xvYmFsVGhp
cy54ID0gMTAwOworICAgIHNyLmV2YWx1YXRlKGBnbG9iYWxUaGlzLnggPSA0MmApOworICAgIGNv
bnN0IGYgPSBzci5ldmFsdWF0ZShgKCkgPT4ge3JldHVybiBnbG9iYWxUaGlzLng7fWApOworICAg
IGxvZ19lcXVhbChsb2csICJjYWxsaW5nIG5lc3RlZCByZWFsbSB3cmFwcGVyIHVzZXMgY29ycmVj
dCBnbG9iYWwiLCA0MiwgZigpKTsKKyAgICBsb2dfZXF1YWwobG9nLCAibmVzdGVkIHJlYWxtIGV2
YWwgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBzci5ldmFsdWF0ZShgZ2xvYmFsVGhpcy54YCkp
OworICAgIHJldHVybiB0cnVlOworfQorCit2YXIgc2V0VmFsdWUgPSBmdW5jdGlvbiAobmV3VmFs
dWUpIHsKKyAgICBjb25zb2xlLmxvZyhuZXdWYWx1ZSk7CisgICAgdmFsdWUgPSBuZXdWYWx1ZTsK
K30KKworZXhwb3J0IHsgdmFsdWUsIHNldFZhbHVlLCBjaGVjaywgY2hlY2tfbmVzdGVkIH07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtl
ci5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFhMTNlNTBlMWFkMWMxYzQzYzI3YTAxMDAzZGY5OWU0ZGY0N2UzNzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxt
LXdvcmtlci5qcwpAQCAtMCwwICsxLDUxIEBACitpbXBvcnRTY3JpcHRzKCIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiKTsKKworZnVuY3Rpb24gYXNzZXJ0X2VxdWFscyh4LCB5KSB7Cisg
ICAgaWYgKHggPT09IHkpIHJldHVybjsKKyAgICB0aHJvdyBuZXcgRXJyb3IoYGFzc2VydGlvbiBm
YWlsdXJlOiBleHBlY3RlZCAke3h9LCBnb3QgJHt5fWApOworfQorCitmdW5jdGlvbiB3cmFwcGVk
TG9nKHByZWZpeCkgeworICAgIHJldHVybiBmdW5jdGlvbiAobXNnKSB7CisgICAgICAgIGRlYnVn
KHByZWZpeCArICI6ICIgKyBtc2cpOworICAgIH07Cit9CisKKworYXN5bmMgZnVuY3Rpb24gdGVz
dChrZXksIGYpIHsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBmKCk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICB0ZXN0RmFpbGVkKGtleSArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgdGVzdFBhc3NlZChrZXkpOworfQorCisoYXN5bmMgZnVuY3Rpb24g
KCkgeworICAgIGF3YWl0IHRlc3QoImltcG9ydC12YWx1ZSIsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICBj
b25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFt
cGxlLW1vZHVsZS5qcyIsICJjaGVjayIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4o
d3JhcHBlZExvZygic2hhZG93UmVhbG0iKSksIHRydWUpOworCisgICAgICAgIGNvbnN0IG91ck1v
ZHVsZSA9IGF3YWl0IGltcG9ydCgiLi9leGFtcGxlLW1vZHVsZS5qcyIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwgImJsb29wIik7CisgICAgICAgIG91ck1v
ZHVsZS5zZXRWYWx1ZSg0Mik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVl
LCA0Mik7CisKKyAgICAgICAgY29uc3QgaW1wb3J0ZWRWYWwgPSBhd2FpdCBvdXRlclNoYWRvd1Jl
YWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwsIHRydWUpOworICAgICAgICBjb25zdCBzZXRWYWx1
ZUltcG9ydGVkID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxl
LW1vZHVsZS5qcyIsICJzZXRWYWx1ZSIpOworICAgICAgICBzZXRWYWx1ZUltcG9ydGVkKDEwMCk7
CisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsMiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9k
dWxlLnZhbHVlLCA0Mik7CisgICAgfSk7CisKKyAgICBhd2FpdCB0ZXN0KCJuZXN0ZWQiLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVh
bG0oKTsKKyAgICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2tfbmVzdGVkIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7
CisgICAgfSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447057</attachid>
            <date>2021-12-13 13:50:17 -0800</date>
            <delta_ts>2021-12-14 08:29:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211213165016.patch</filename>
            <type>text/plain</type>
            <size>112591</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KaW5kZXggM2ZiNzc4NGVjNTdkMTY0
ZDVjNjc3NzAxOWVmYzMyZmQ4ZWYyYjVmNS4uNjUzOGQzMzZjODg5NDFlMTM3N2RlYzBkYThlNGZi
ZDcxOTdkNjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUds
b2JhbE9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFs
T2JqZWN0Lm1tCkBAIC03MSw2ICs3MSw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51
bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1p
bmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9y
dFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRXhjZXB0aW9uKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDk4OTgwNDBm
YWYyMjRiOWEzM2ZlZTc5MGIwNzY2YmU2NzYzYTU4ZTguLmIzZDJiMDRhNmQ2MzViMDQyYTI5Yjkw
NzVhOTUzYWE0ZWUxZDY3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03NTgsNiArNzU4LDcg
QEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAg
IG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aW5h
dGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEds
b2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggNTkyMmQ1NjJjNDZmODAwYjFhYzFhYWQ3ZTE4ZDc3ZDkyYjRhMjE4Ny4uZDQzNTIyOGY1OTM0
NTBiZTk5MWQ2MTllYzc4NDhjMDgxNzkwZjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTM3LDYgKzUzNyw3IEBAIGNvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxw
dHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVh
bWluZworICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogLyogU291cmNl
IGZvciBKU0dsb2JhbE9iamVjdC5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMTg0ZDFjOGJmYTdhOGYwYTRhYTUwODIzZmJhNmUz
YjgyYmQxOTlhZi4uYzMzOGQ3ZDkxMzIyZjMzNzU0ODIyN2VmNzFlYzc2Y2MwZTlmMzE5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0y
NjQsNiArMjY0LDkgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKIAogICAgIHR5
cGVkZWYgSlNQcm9taXNlKiAoKkluc3RhbnRpYXRlU3RyZWFtaW5nUHRyKShKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUsIEpTT2JqZWN0Kik7CiAgICAgSW5zdGFudGlhdGVTdHJlYW1pbmdQdHIgaW5z
dGFudGlhdGVTdHJlYW1pbmc7CisKKyAgICB0eXBlZGVmIEpTR2xvYmFsT2JqZWN0KiAoKkRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsRnVuY3Rpb25QdHIpKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyIGRlcml2ZVNoYWRvd1JlYWxtR2xv
YmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDgyLDYgKzEwODUsMTEgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCop
IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hh
ZG93UmVhbG1HbG9iYWxPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9t
TWV0aG9kVGFibGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVs
bCgpKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNHbG9iYWxPYmpl
Y3QqKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgc3RhdGljIFJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KikgeyByZXR1cm4gUnVudGltZUZsYWdzKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMTZlOGFhYzNkYWYzMWNhYmY2YjE4OWVhZDFiMzMxNmM0YWMxNTdmNy4uYzg4NmJhYzA2
M2I0MmM2NzJmMmZlYzk1MTgxZjEwMTdiNjZhZjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKQEAgLTUz
LDcgKzUzLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTaGFkb3dS
ZWFsbUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGcKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgU3RydWN0dXJlKiBzaGFkb3dSZWFsbVN0cnVjdHVyZSA9IFNo
YWRvd1JlYWxtT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5zaGFkb3dSZWFsbVByb3RvdHlwZSgpKTsKLSAgICBKU09iamVjdCogc2hhZG93UmVh
bG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBzaGFkb3dSZWFsbVN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICBKU09i
amVjdCogc2hhZG93UmVhbG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBz
aGFkb3dSZWFsbVN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHNoYWRvd1JlYWxtT2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCmluZGV4IGEyNWE0MDA4MDkzMDA4
MWYwMDhlNjNlMTE2OWRjZjc3ZTc0MzhmYzguLjFiN2JlOWRhNzE3ZDU3NjEwZjZlYmM5MjIwNTQ5
NTBkYmI4ODQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
aGFkb3dSZWFsbU9iamVjdC5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCB2b2lkIFNoYWRvd1JlYWxt
T2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3Ip
CiAKIERFRklORV9WSVNJVF9DSElMRFJFTihTaGFkb3dSZWFsbU9iamVjdCk7CiAKLVNoYWRvd1Jl
YWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSkKK1No
YWRvd1JlYWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgU2hh
ZG93UmVhbG1PYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFNoYWRv
d1JlYWxtT2JqZWN0Pih2bSkpIFNoYWRvd1JlYWxtT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAg
IG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIG1ldGhvZFRhYmxl
KTsKLSAgICBvYmplY3QtPm1fZ2xvYmFsT2JqZWN0LnNldCh2bSwgb2JqZWN0LCBnbG9iYWxPYmpl
Y3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBzaGFkb3dSZWFsbUdsb2JhbE9iamVjdCA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+ZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3Qodm0sIGdsb2JhbE9iamVjdCk7CisgICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5z
ZXQodm0sIG9iamVjdCwgc2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRv
d1JlYWxtT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bU9iamVjdC5oCmluZGV4IGQwODhmZjc4NDJlMjBhZTU0MjUyZjZkYjA1ZDRjN2U4NGY5ZWIxNWMu
LmFkYjJlZDAyMmEzNzBjNDAzOTI0OTM3YjVhYTdiNTNiOThmMjdmNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaApAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKLSAgICBzdGF0aWMgU2hhZG93
UmVhbG1PYmplY3QqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKik7CisgICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCgpIHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNDczMjgzOGYyNDZlMGIyYjE0ZmQwMWEwY2Q2MjQzZTBiNjMxMTVkNS4uMjRm
NDRlNmJjYjFjNzI1YTM0NDM2OTdjYWMwOTIzYmY0NjU2MGU3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTEyMDYsNiArMTIwNiw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCiAgICAgcGFnZS9TY3JvbGxPcHRpb25z
LmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorICAgIHBhZ2UvU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1N0cnVjdHVy
ZWRTZXJpYWxpemVPcHRpb25zLmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCkBAIC0yMDc4LDYg
KzIwNzksNyBAQCBzZXQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vRE9NSXNvU3Vic3BhY2VzLmgpCiBzZXQoQ09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9ET01Db25zdHJ1Y3RvcnMuaCkK
IHNldChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0RPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1dvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKK3NldChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFNFUlZJQ0VXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChTSEFSRURX
T1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQpAQCAtMjI2
MiwxMiArMjI2NCwxMyBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBH
RU5FUkFUT1IgSlMKICAgICBTVVBQTEVNRU5UQUxfREVQRklMRSAke1NVUFBMRU1FTlRBTF9ERVBF
TkRFTkNZX0ZJTEV9CiAgICAgUFBfRVhUUkFfT1VUUFVUCi0gICAgICAgICR7SVNPX1NVQlNQQUNF
U19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9XX0NPTlNU
UlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSAke0RF
RElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9X
X0NPTlNUUlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
fSAke1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9ICR7REVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgUFBfRVhUUkFfQVJHUwog
ICAgICAgICAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJHtJU09fU1VCU1BBQ0VTX0hFQURFUl9G
SUxFfQogICAgICAgICAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJHtDT05TVFJVQ1RPUlNfSEVB
REVSX0ZJTEV9CiAgICAgICAgIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAke1dJTkRPV19DT05T
VFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KKyAgICAgICAgLS1zaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1NIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAke1NFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFSRURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDI1YWY0ZDEwZjM3MmIzYzFlNzZiY2Y3
NDU1Y2FkYTcxZmM5YmVmZWMuLjc4ODgwNWVmZmQzYzUyNGEyZWRiZTQ3ZDM4ODFmOGYwYzRjNWI4
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMTQyNSw2ICsxNDI1LDcgQEAgJChQUk9KRUNUX0RJUikvcGFnZS9TY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCiAkKFBS
T0pFQ1RfRElSKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2Uv
U2V0dGluZ3MueWFtbAorJChQUk9KRUNUX0RJUikvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TaGFyZURhdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9w
YWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9V
bmRvSXRlbS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNTc3NmI3NzlkZjhhMzdmYmEzMmUyMTM5ZGFjYjJjYTYyYzA5MTEwNi4u
YWRmNjc3NTMzZmQyZjk2Yzk2MWNlNWI1ODUxMzFjOGMwMDNhMjFjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI0NjcsNiArMjQ2
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2Vy
dmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyV2lu
ZG93Q2xpZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NoYWRvd1Jvb3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NoYWRvd1Jvb3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTaGFkb3dSb290SW5pdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDYwNTE0MDVhZGE1M2Y2ODViY2Q4MTEyMGJhMjY5NzQwOGY3MjM4NjguLmQzZjFlYTk1
ZmE5NGM5ZDU2NGMxMWEzZjM0MzRmMDI1NjI0ZGQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMTI1NSw2ICsxMjU1LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAk
KFdlYkNvcmUpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9P
cHRpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2hhcmVEYXRhLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9w
YWdlL1VuZG9JdGVtLmlkbCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBJU09fU1VCU1BBQ0VTX0hF
QURFUl9GSUxFID0gRE9NSXNvU3Vic3BhY2VzLmgKIENPTlNUUlVDVE9SU19IRUFERVJfRklMRSA9
IERPTUNvbnN0cnVjdG9ycy5oCiBXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgPSBET01XaW5kb3dD
b25zdHJ1Y3RvcnMuaWRsCiBXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
CiBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogU0VSVklDRVdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbAogU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTIwOTEsNiArMjA5Myw3IEBA
IElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJ
TEUpIFwKICAgICAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKFNIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgXApAQCAtMjEwMSw3ICsyMTA0LDcgQEAgSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9
ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVE
SUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJV
VEVTX0ZJTEUpICQoSlNfQklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklO
RV9ERVBFTkRFTkNJRVMpCiAJJChzaGVsbCBlY2hvICQoSlNfQklORElOR19JRExTKSB8IHRyICIg
IiAiXG4iID4gSURMRmlsZU5hbWVzTGlzdC50eHQpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9Q
TEFURk9STV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3Qg
SURMRmlsZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVT
X0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5E
RU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURF
Ul9GSUxFKSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJ
TEUpIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkg
LS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1z
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSAkKFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQ
UExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9S
TV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgSURMRmls
ZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUp
IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9G
SUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxF
KSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUpIC0t
d2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNI
QURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCiAjCiAjIEVt
aXQgdGhlIHJ1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZyb20gSURMIGZpbGVzLiBOb3RlIHRo
YXQgdGhlcmUgYXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2MWZmYjBhMTc0YmI3OGU4ZWJlY2Mw
YTg5NDI3NjRjZGNmYzNjYTM2Li45YWU4NjZjY2FmMjIzNjlmOGFkZDkyOTBlMTZjZGJhYjRhYzRj
NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ1Myw2ICs0NTMsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgK
ICAgICBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmgKICAgICBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaAorICAgIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UuaAogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5oCiAgICAg
YmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCiAgICAgYmluZGluZ3MvanMvSlNX
aW5kb3dQcm94eS5oCkBAIC0xMTQwLDYgKzExNDEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaAogICAgIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuaAogICAgIHBhZ2UvU2V0dGluZ3NCYXNlLmgKKyAgICBwYWdlL1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaAogICAgIHBhZ2UvU2hhcmVEYXRhLmgKICAgICBwYWdlL1NvY2tl
dFByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCA1Nzg0NjdhY2FmNzAxMGZmMzY4ZTgwMGYzZDdkNzBiODIxM2JiNDMyLi4yM2Qz
YWI0ZjFkYzAwMTUzOTNmZDAwNzllNDJjNGQ3ZDBhMDUyMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
NjE1LDYgKzYxNSw3IEBAIGJpbmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTV2ViWFJWaWV3Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorYmluZGluZ3MvanMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTE3ODgsNiAr
MTc4OSw3IEBAIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0
YS5jcHAKIHBhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCiBwYWdlL1NldHRpbmdzQmFzZS5jcHAKK3Bh
Z2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAog
cGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC0z
ODQ0LDYgKzM4NDYsNyBAQCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKIEpTU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKIEpTU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmNw
cAogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlLmNwcAogSlNTaGFkb3dSb290LmNwcAogSlNTaGFkb3dSb290SW5pdC5jcHAKIEpTU2hhZG93
Um9vdE1vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNWIyNDJjZTIyNTMwMzUzYzNjMzYxODNlYTlkYTY2MjhiZTU2MjMz
NC4uNzI3NmIyZGQ1MmZjNDM4MmU3ZWE2MTZiOTY1MWY5ODM2ZDQyZmNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMzNiw2
ICsxMzM2LDggQEAKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVy
aW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwogCQk0NjgyRDIwMDFGNzk3ODMw
MDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMwMEM4NjNEQiAvKiBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0
REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4M0RGNDAyNzY3REY5ODAwN0QwMEM4IC8q
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggKi87IH07CisJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBD
OCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzREYzQjI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODhFRTNBMjZE
RDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFDMDA2RTAzMTQgLyog
QnJvYWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlENzdC
ODI3MDE2MjUxMDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5RDc3QjYyNzAxNjI1MDAwMTQyRkE2
IC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtOTE2MCw2ICs5MTYyLDExIEBACiAJCTQ2ODM0NERDMUVEREZB
NUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUmVjdExpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVj
dExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjNCMjc2N0RGMjYwMDdEMDBDOCAv
KiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0MyNzY3REYy
NjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzREYzRDI3
NjdERjk4MDA3RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0UyNzY3REY5ODAw
N0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NP
cmlnaW5Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAy
MDIwMDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJy
b2FkY2FzdENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwNjIs
NiArMjQwNjksOSBAQAogCQkJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55
YW1sICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3Bw
ICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywK
KwkJCQk0NjgzREYzOTI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAgKi8sCisJCQkJNDY4M0RGM0IyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuaCAqLywKKwkJCQk0NjgzREYzQzI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwgKi8sCiAJCQkJMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJl
RGF0YS5oICovLAogCQkJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRs
ICovLAogCQkJCTFBMkM2NjcxMjQyQUZFRjcwMDMwNTVFQyAvKiBTaGFyZURhdGFSZWFkZXIuY3Bw
ICovLApAQCAtMjkwODgsNiArMjkwOTgsOCBAQAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2
OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQk0NkJDQkJDMTIwODUwMDgw
MDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLywKIAkJCQk0NkJDQkJDMDIw
ODUwMDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8sCisJCQkJNDY4M0RG
M0QyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwICov
LAorCQkJCTQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlLmggKi8sCiAJCQkJOTMxQUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8qIEpTVmFsdWVJbldy
YXBwZWRPYmplY3QuaCAqLywKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5k
b3dQcm94eS5jcHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93
UHJveHkuaCAqLywKQEAgLTM1NDI4LDYgKzM1NDQwLDcgQEAKIAkJCQk1MTgyQzI1QzFGMzE0M0NE
MDA1OUJBN0MgLyogSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUYxNzUwMzFGMzU4QjNCMDBDNzQ5NTAgLyogSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlh
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUIzN0NFMUY5N0NDRDIwMEI2NTUyMyAvKiBK
U1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQw
Mjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5QzFEQzI2MjBCMDBCODBCNDggLyogSlNTaGFkb3dS
b290TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM2OTE0LDYgKzM2OTI3LDcgQEAK
IAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAvKiBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAw
RUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDU2QTdBQzgyNTZDNEY0
ODAwMkY5RERDIC8qIFNoYWRvd1Jvb3RJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5
ODFEQzI2MDMxMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4
IDUyNTEwYzMwODE4ZjBjYTkxNmE4ODQzNzdkMjI0YTFhYmE3OTViODUuLmI5YTIwZjIyOGI4MDFj
NWFkMDc3MGFjNzZlNDg1YjY0ZTVmYmNlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRl
ICJKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0u
aCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2Uu
aCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dyaXRhYmxlU3RyZWFtLmgiCkBAIC0yNjYsNiAr
MjY4LDggQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpT
RE9NV2luZG93QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KGluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIGlmIChpbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2
bSgpKSkKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJp
dHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0
PGNvbnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSgp
KSkKQEAgLTUwNiw2ICs1MTAsOCBAQCBzdGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRN
b2R1bGVMb2FkZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAg
IHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxv
YWRlcigpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93
QmFzZT4odm0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlQmFzZT4odm0pKQpAQCAtNTcwLDYgKzU3Niwy
NSBAQCBKU0M6OkpTT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRl
SW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKUwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9i
amVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZSgpKTsKIH0KIAorSlNDOjpKU0dsb2JhbE9iamVjdCogSlNET01HbG9iYWxPYmpl
Y3Q6OmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgYXV0byBkb21HbG9iYWxPYmplY3QgPSBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworCisgICAgQVNTRVJUKGRv
bUdsb2JhbE9iamVjdCk7CisgICAgYXV0byBzY29wZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OnRyeUNyZWF0ZShkb21HbG9iYWxPYmplY3QsIHNjcmlwdE1vZHVsZUxvYWRlcihkb21HbG9iYWxP
YmplY3QpKS5yZWxlYXNlTm9uTnVsbCgpOworCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlND
Ojpqc051bGwoKSk7CisgICAgYXV0byBwcm94eVN0cnVjdHVyZSA9IEpTUHJveHk6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlNDOjpqc051bGwoKSk7CisgICAgYXV0byBwcm94eSA9IEpT
UHJveHk6OmNyZWF0ZSh2bSwgcHJveHlTdHJ1Y3R1cmUpOworICAgIGF1dG8gd3JhcHBlciA9IEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoc2Nv
cGUpLCBwcm94eSk7CisKKyAgICB3cmFwcGVyLT5zZXRQcm90b3R5cGVEaXJlY3Qodm0sIHdyYXBw
ZXItPm9iamVjdFByb3RvdHlwZSgpKTsKKyAgICBwcm94eS0+c2V0VGFyZ2V0KHZtLCB3cmFwcGVy
KTsKKworICAgIHJldHVybiB3cmFwcGVyOworfQorCisKIEpTRE9NR2xvYmFsT2JqZWN0KiB0b0pT
RE9NR2xvYmFsT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCiB7CiAgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGY0ZDg2
NWQ5YTAzMjdiOGFkOTRmN2IwZGY5M2NmYzBkNTdjZThiNTguLjIyNzkyYTA5YWEwYjAxZmEwOTZi
YWJiYWMzYjU3YjhiNjlhMTZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBET01HdWFyZGVkT2Jq
ZWN0OwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogCiB1c2luZyBKU0RP
TVN0cnVjdHVyZU1hcCA9IEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRl
QmFycmllcjxKU0M6OlN0cnVjdHVyZT4+OwogdXNpbmcgRE9NR3VhcmRlZE9iamVjdFNldCA9IEhh
c2hTZXQ8RE9NR3VhcmRlZE9iamVjdCo+OwpAQCAtODYsNiArODcsNyBAQCBwdWJsaWM6CiAgICAg
SlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMmIGJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpIHsg
cmV0dXJuIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOyB9CiAKICAgICBzdGF0aWMgdm9pZCBy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGNlcHRpb24qKTsKKyAgICBzdGF0aWMgSlNDOjpKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hhZG93
UmVhbG1HbG9iYWxPYmplY3QoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAogICAg
IHZvaWQgY2xlYXJET01HdWFyZGVkT2JqZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBmODkxZTc2ZTg2NWM2YjFm
YTVjMzNiYTQ1MzhhMTI5ODY2ZjgzNDIxLi45YjJiN2VkNGYwNGFkMWUwNjQ1Zjg4YzhhMmI2ZjMy
ZjU3ZTRlMmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKQEAgLTk1LDYgKzk1LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxw
dHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9i
amVjdAogfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJv
eHkqIHByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1v
dGVET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3Rl
RE9NV2luZG93QmFzZS5jcHAKaW5kZXggYWIzZmFjNjcxMzA0ZjhjN2JjYTU5MDMwMzJlZDZjNjBi
ZGMxZmE0Yi4uYTRkNzE1ZjcwOGM2MGMwMjg2NTc5Y2YxNTkwMzU3NzAwYjdkNTRhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTUmVt
b3RlRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9CiAgICAgbnVsbHB0
ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwog
ICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVy
aXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEpTUmVtb3RlRE9NV2luZG93QmFzZTo6
SlNSZW1vdGVET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0
cjxSZW1vdGVET01XaW5kb3c+JiYgd2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFhYjYwZmZlYjZkMmI1NDliMmZlZmRkMTNhOWNm
YzBmZWRkNzViYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgiCisKKyNp
bmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJKU01pY3JvdGFza0NhbGxiYWNrLmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHku
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlND
OworCitjb25zdCBDbGFzc0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19pbmZv
ID0geyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UpIH07CisKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CisgICAg
JnN1cHBvcnRzUmljaFNvdXJjZUluZm8sCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdCwKKyAg
ICAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywKKyAgICAmcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9v
cCwKKyAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwKKyAgICAmbW9kdWxl
TG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1
bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRp
ZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRlLAorICAgICZwcm9taXNlUmVqZWN0aW9uVHJh
Y2tlciwKKyAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKKyAgICAmY3Vy
cmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAorICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCisg
ICAgJnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwsCisgICAgW10geyByZXR1cm4gZGVmYXVs
dExhbmd1YWdlKCk7IH0sCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICZjb21waWxlU3Ry
ZWFtaW5nLAorICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKKyNlbHNlCisgICAgbnVsbHB0ciwK
KyAgICBudWxscHRyLAorI2VuZGlmCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0
LAorfTsKKworSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6SlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRy
PFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCkKKyAgICA6IEpTRE9NR2xvYmFsT2JqZWN0
KHZtLCBzdHJ1Y3R1cmUsIG5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUpCisgICAgLCBtX3dyYXBwZWQoV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkqIHBy
b3h5KQoreworICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CisgICAgbV93cmFwcGVk
LT5tX3dyYXBwZXIgPSBKU0M6OldlYWsodGhpcyk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0sIG1fcHJveHkuZ2V0KCkpOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Cit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKTsKKyAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGls
ZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0
LT5tX3Byb3h5KTsKK30KKworREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UpOworCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaW5jdWJhdGluZygpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9CisKK2NvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0KiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5n
KCkgY29uc3QKK3sKKyAgICBhdXRvIGluY3ViYXRpbmdXcmFwcGVyID0gbV93cmFwcGVkLT5tX2lu
Y3ViYXRpbmdXcmFwcGVyLmdldCgpOworICAgIEFTU0VSVChpbmN1YmF0aW5nV3JhcHBlcik7Cisg
ICAgcmV0dXJuIGluY3ViYXRpbmdXcmFwcGVyOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIHN0YXRpY19jYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKS0+SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZTo6fkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoKTsKK30KKworYm9vbCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBy
ZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zdXBwb3J0c1JpY2hTb3VyY2VJ
bmZvKG9iaik7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxk
SW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0
byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVj
dCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5zaG91bGRJbnRlcnJ1cHRTY3JpcHQob2JqKTsKK30KKworYm9vbCBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0
IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAg
ICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zaG91bGRJbnRlcnJ1cHRT
Y3JpcHRCZWZvcmVUaW1lb3V0KG9iaik7Cit9CisKK1J1bnRpbWVGbGFncyBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2Jq
LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKG9iaik7
Cit9CisKK0pTQzo6U2NyaXB0RXhlY3V0aW9uU3RhdHVzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnNjcmlwdEV4ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNPYmplY3QqIG93bmVyKQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nKCk7
CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2NyaXB0RXhlY3V0
aW9uU3RhdHVzKG9iaiwgb3duZXIpOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwoSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgb2JqLT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5yZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKG9iaik7
Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cXVldWVNaWNyb3Rhc2tU
b0V2ZW50TG9vcChKU0dsb2JhbE9iamVjdCYgb2JqZWN0LCBSZWY8SlNDOjpNaWNyb3Rhc2s+JiYg
dGFzaykKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKj4oJm9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBvYmotPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoKm9iaiwgV1RGTW92ZSh0YXNrKSk7
Cit9CisKK0pTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiByZWFsbUdsb2JhbFNj
b3BlKQoreworICAgIHJldHVybiB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHJlYWxtR2xvYmFs
U2NvcGUpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlJiByZWFsbUdsb2JhbFNjb3BlKQoreworICAgIEFTU0VSVChyZWFsbUdsb2JhbFNj
b3BlLndyYXBwZXIoKSk7CisgICAgcmV0dXJuICZyZWFsbUdsb2JhbFNjb3BlLndyYXBwZXIoKS0+
cHJveHkoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ5YzBhNjRkNmIyNmM2ZTdlYmFjMDc2ZWNhZGExY2RkOGEzNTBlYWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9N
R2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGU7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CisKK2NsYXNz
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3Qg
eworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0RPTUdsb2JhbE9iamVjdDsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRpYyB2b2lkIHN1
YnNwYWNlRm9yKEpTQzo6Vk0mKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwor
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5G
TzsKKworICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVy
biAqbV93cmFwcGVkOyB9CisKKyAgICBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGlu
ZygpIGNvbnN0OworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1YmF0aW5nKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29uc3RfY2FzdDxj
b25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPmluY3ViYXRpbmcoKSk7
CisgICAgfQorCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZTsKKworICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6UnVudGltZUZsYWdzIGph
dmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyBKU0M6OlNjcmlwdEV4ZWN1dGlvblN0YXR1cyBzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBxdWV1
ZU1pY3JvdGFza1RvRXZlbnRMb29wKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8SlNDOjpNaWNy
b3Rhc2s+JiYpOworICAgIHN0YXRpYyB2b2lkIHJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwo
SlNDOjpKU0dsb2JhbE9iamVjdCopOworCitwcm90ZWN0ZWQ6CisgICAgSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8U2hhZG93UmVh
bG1HbG9iYWxTY29wZT4mJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlND
OjpKU1Byb3h5Kik7CisKKyAgICBERUNMQVJFX1ZJU0lUX0NISUxEUkVOOworCitwcml2YXRlOgor
ICAgIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBtX3dyYXBwZWQ7Cit9OworCisvLyBS
ZXR1cm5zIGEgSlNXb3JrZXJHbG9iYWxTY29wZSBvciBqc051bGwoKQorLy8gQWx3YXlzIGlnbm9y
ZXMgdGhlIGV4ZWNTdGF0ZSBhbmQgcGFzc2VkIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9i
YWxTY29wZSBpcyBpdHNlbGYgYSBnbG9iYWxPYmplY3QgYW5kIHdpbGwgYWx3YXlzIHVzZSBpdHMg
b3duIHByb3RvdHlwZSBjaGFpbi4KK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmKTsKK2lubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlKiBzY29wZSkgeyByZXR1cm4gc2NvcGUgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KK0pTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7CitpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqc2NvcGUpIDogSlNDOjpqc051bGwoKTsgfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNTM5YWExZGMxMmFmY2ZkNGIxZWU0NmQz
ZWZkMTQ2YzNjODQwMzM0MS4uMGM1NDcyMTc0ZDJmOGQ0YjU4YzI1NTcwZjhiMzk1N2NlN2EzY2Ez
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNzAsNiArNzAsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZQogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgIGRlcml2ZVNoYWRvd1Jl
YWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDNkYzU0
OWMxMDM5NWRiOWE4NTc5YWViY2E4NTQ2ZWJlOGNjYmFhMmMuLjdmNGI5NjNjMTk4ZDc4YWFkZGRi
OTI5ZTVjMGI4MWJhMzMyZTQ3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNjYsNiArNjYsNyBAQCBj
b25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRp
ZgorICAgIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlOjpKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxXb3JrbGV0R2xvYmFsU2NvcGU+JiYgaW1wbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
CmluZGV4IGFkOTNjZTA5MDJjNTdiMDU1NDg0YmI1NDM0NDE3Mzg5MzJkNDZiYTMuLmVlM2I1Mzhk
NzkxM2RkNzY2ZjVlNmIyNjJjNzI0NzMzYjZkOGFmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oIgpAQCAtNzQsNiArNzUsMTMgQEAgU2NyaXB0TW9kdWxlTG9hZGVyOjp+U2Ny
aXB0TW9kdWxlTG9hZGVyKCkKICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogfQogCitz
dGQ6OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBTY3JpcHRNb2R1bGVMb2FkZXI6OnNo
YWRvd1JlYWxtTG9hZGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIHJlYWxtR2xvYmFsKSBjb25zdAor
eworICAgIGF1dG8gbG9hZGVyID0gV1RGOjptYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4o
bV9jb250ZXh0LCBtX293bmVyVHlwZSk7CisgICAgbG9hZGVyLT5tX3NoYWRvd1JlYWxtR2xvYmFs
ID0gcmVhbG1HbG9iYWw7CisgICAgcmV0dXJuIGxvYWRlcjsKK30KKwogc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKIHsKICAgICByZXR1cm4g
aW1wb3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVm
aW5lZCgpOwpAQCAtMjQ0LDcgKzI1Miw5IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAg
aWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVF
cnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJM
LiJfcyk7CiAKLSAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgewor
ICAgIGlmIChtX3NoYWRvd1JlYWxtR2xvYmFsKSB7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShtX3NoYWRvd1JlYWxtR2xvYmFsLCBhd2Fp
dGVkVmFsdWUsIHJlc3VtZU1vZGUpKTsKKyAgICB9IGVsc2UgaWYgKG1fb3duZXJUeXBlID09IE93
bmVyVHlwZTo6RG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1v
ZHVsZVJlY29yZCwgYXdhaXRlZFZhbHVlLCByZXN1bWVNb2RlKSk7CiAgICAgfSBlbHNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKaW5kZXgg
ZTgyYThiYjQzMzcxZWE2Y2FiOGZjZmE4NDI0ZDg3ZWIzYzk4NjMxOC4uMzljOGRkNWE1MWQwZGE5
NWYyMzc1NTliZTlmMGQzMWVlMmRjMzQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKQEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3du
ZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxlTG9hZGVyKCk7CiAKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBzaGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiByZWFsbUdsb2JhbCkgY29uc3Q7CisKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50aWZpZXIgcmVz
b2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNW
YWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAgIEhhc2hT
ZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKICAgICBPd25lclR5cGUgbV9v
d25lclR5cGU7CisgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbV9zaGFkb3dSZWFsbUdsb2JhbCB7
IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKaW5kZXggNmQ0NmIx
NTQzNTYxNjUyNDUwMTc5YjA3NDdjZGI4NzRiMmVkZWQ3MS4uNDliMDJiZjBlNzYwMzBiMDZmZDU5
YTc2ZmU1NjA1NDcxYTJmNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNSZW1vdGVET01XaW5kb3cu
aCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJH
bG9iYWxTY29wZS5oIgpAQCAtNjgsNiArNjksNyBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVu
dERhdGEoVk0mIHZtKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdyhK
U0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1JlbW90ZURPTVdpbmRvdz4oKSkKICAgICAsIG1f
aGVhcENlbGxUeXBlRm9ySlNXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6
QXJnczxKU1dvcmtlckdsb2JhbFNjb3BlPigpKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU+KCkpCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwgbV9oZWFwQ2Vs
bFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6
QXJnczxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgwMzY2YTBj
N2Y3MjIwMjNmNzkzODE0YWY2ZWE1NzExZGE5ODQ3NzcuLjM3YzlhMWU2NjRkZjg1ZmJiZGU2MzMx
NjkxMTQ4YzdjNjI2Njg3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgSlND
OjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdzsKICAg
ICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2Nv
cGU7CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlOworICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBl
Rm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFhNzJiNTRiN2FmYjMwNzljNTUwMDdhNjhj
MDg4MmMyNDJhODk1OGMuLjk3MTM1MTI3YWUxZmVkODAxMjNiYjZjZGRhZmE2ODJkYjkzNDExNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC03NjAsNyArNzYwLDcgQEAgc3ViIEdldEN1c3RvbUlzUmVhY2hhYmxlCiBzdWIg
SXNET01HbG9iYWxPYmplY3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgcmV0
dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZS0+
dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJp
dHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUi
KSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKKyAgICBy
ZXR1cm4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ciIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29w
ZSIpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUi
IHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlRlc3RHbG9iYWxPYmplY3QiOwogfQogCiBz
dWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCkBAIC03NzUsNiArNzc1LDEzIEBAIHN1
YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKICAgICByZXR1cm4gSXNET01HbG9iYWxP
YmplY3QoJGludGVyZmFjZSk7CiB9CiAKK3N1YiBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3Rv
dHlwZQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKworICAgIHJldHVybiAkaW50ZXJm
YWNlLT5pc05hbWVzcGFjZU9iamVjdCgpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUiOworfQorCiBzdWIgR2VuZXJhdGVJbmRleGVkR2V0dGVyCiB7
CiAgICAgbXkgKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW5kZXhFeHBy
ZXNzaW9uKSA9IEBfOwpAQCAtMjg3MSw3ICsyODc4LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIHByb3h5KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4i
KTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVy
ZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikg
fHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0
R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNDOjpKU1Byb3h5KiBwcm94eSlcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6
YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KHZtKSkgJHtjbGFzc05hbWV9KHZtLCBzdHJ1Y3R1cmUs
IFdURk1vdmUoaW1wbCkpO1xuIik7CkBAIC0yOTEzLDcgKzI5MjAsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwg
SlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIn0gPSAxIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciOwogICAgICAgICAKICAgICAjIFByb3RvdHlwZQotICAgIHVubGVzcyAo
U2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2Ut
PmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQ
cm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUo
JGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVj
dCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwog
ICAgIH0KQEAgLTMxNzAsNyArMzE3Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ29u
c3RydWN0b3IKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVy
ZmFjZU5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAkY2xhc3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1w
bFR5cGU+JiYsIEpTV2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8
fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRH
bG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50
ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJ
bnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwogICAgIH0gZWxzaWYgKCFOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAkY2xhc3NOYW1lKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTtcblxu
Iik7CkBAIC0zMTgwLDcgKzMxODcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3Rl
RE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTV2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xv
YmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFj
ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0lu
dGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRv
ci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpO1xuIik7
CkBAIC0zOTU5LDYgKzM5NjYsOCBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9u
YWxTdHJpbmdGb3JFeHBvc2VkCiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJX
b3JrZXIiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKSIpOworICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJT
aGFkb3dSZWFsbSIpIHsKKyAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aXNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgkZXhw
b3NlZCBlcSAiV29ya2xldCIpIHsKICAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNXb3JrbGV0R2xvYmFsU2NvcGUoKSIpOwogICAgIH0gZWxzaWYgKCRl
eHBvc2VkIGVxICJBdWRpb1dvcmtsZXQiKSB7CkBAIC00NDk4LDcgKzQ1MDcsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAkaGFzaFNpemUrKzsKICAgICB9CiAKLSAgICBp
ZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKCFTaG91bGRVc2VP
cmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkanVzdEdl
bmVyYXRlVmFsdWVBcnJheSA9ICFJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKIAogICAg
ICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhhc2hUYWJsZSgkY2xhc3NOYW1lLCAkaGFzaE5hbWUsICRo
YXNoU2l6ZSwgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNo
VmFsdWUyLCBcJWNvbmRpdGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsICRqdXN0R2Vu
ZXJhdGVWYWx1ZUFycmF5KTsKQEAgLTQ1MTEsNyArNDUyMCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KIAotICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlKCRpbnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAm
JiAhJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoUHJvdG90eXBlSGFz
U3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGlu
dGVyZmFjZSkgJiYgIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlaWZ5U3RhdGljUHJvcGVydGll
cyh2bSwgJHtjbGFzc05hbWV9OjppbmZvKCksICR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7XG4iKTsKIAogICAgICAgICBteSBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVz
ID0gQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9uczsKQEAgLTQ1OTIsNyArNDYwMSw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBhc3NlcnQoIkpTQ19UT19TVFJJTkdfVEFHX1dJ
VEhPVVRfVFJBTlNJVElPTigpIHJlcXVpcmVzIHN0cmluZ3MgdHdvIG9yIG1vcmUgY2hhcmFjdGVy
cyBsb25nIikgaWYgbGVuZ3RoKCR2aXNpYmxlSW50ZXJmYWNlTmFtZSkgPCAyOwogCi0gICAgaWYg
KCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNlT3Jk
aW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KQEAgLTQ2MjQsNyAr
NDYzMyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGlt
cGwpLCBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIp
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xl
dEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRp
bnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0
c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAg
QWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJbkltcGwoJGludGVyZmFjZU5hbWUpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGwpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHZtLCBzdHJ1
Y3R1cmUsIFdURk1vdmUoaW1wbCkpXG4iKTsKQEAgLTQ2NDUsNyArNDY1NCw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Ns
YXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNXaW5kb3dQcm94eSogcHJveHkpXG4i
KTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50
ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2Jh
bFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKQEAgLTQ3NDUsNyArNDc1
NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgdm0uaGVhcC5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZCh3cmFwcGVkKCkubWVtb3J5
Q29zdCgpKTtcbiIpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1JlcG9ydEV4
dHJhTWVtb3J5Q29zdH07CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCi0gICAg
dW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFBy
b3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTT2Jq
ZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnBhcmVudFR5cGUpIHsKQEAgLTc1MDcsNyArNzUx
Niw3IEBAIHN1YiBHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0aW9uCiB7CiAgICAgbXkgKCRvdXRw
dXRBcnJheSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSkgPSBAXzsKIAotICAgIHJldHVybiBpZiAk
aW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdDsKKyAgICByZXR1cm4gaWYgU2hvdWxkVXNlT3Jk
aW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSk7CiAKICAgICBteSAkcHJvdG90eXBlQ2xh
c3NOYW1lID0gIiR7Y2xhc3NOYW1lfVByb3RvdHlwZSI7CiAKQEAgLTc3ODMsNyArNzc5Miw3IEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgIGlmICghJGdlbmVyYXRp
bmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24gYW5kICRpbnRlcmZhY2UtPnBhcmVudFR5cGUpIHsKICAg
ICAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT5wYXJlbnRUeXBl
LT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7cGFyZW50
Q2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpO1xuIik7Ci0gICAg
fSBlbHNpZiAoJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB9IGVsc2lmIChT
aG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BBUkFNKHZtKTtcbiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdsb2JhbE9iamVjdC5vYmpl
Y3RQcm90b3R5cGUoKTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCA1Yjg5MzEzZmU1Y2FlZmI4OTEyZmI0MzZmMTQ3
NjgyZjA0NzU3N2JhLi43NDFhNThiMTlmMTI4ZGU0ZjA5YjFjYjU2NmNmNTFhOTFlZDdmOGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbApAQCAtNDQsNiArNDQsNyBAQCBteSAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZTsKIG15ICRj
b25zdHJ1Y3RvcnNIZWFkZXJGaWxlOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGU7CiBteSAk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOworbXkgJHNoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlOwogbXkgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKQEAgLTY1
LDcgKzY2LDggQEAgbXkgQHN1cHBvcnRlZEdsb2JhbENvbnRleHRzID0gKAogICAgICJEZWRpY2F0
ZWRXb3JrZXIiLAogICAgICJTZXJ2aWNlV29ya2VyIiwKICAgICAiUGFpbnRXb3JrbGV0IiwKLSAg
ICAiQXVkaW9Xb3JrbGV0IgorICAgICJBdWRpb1dvcmtsZXQiLAorICAgICJTaGFkb3dSZWFsbSIs
CiApOwogCiAjIFRvZ2dsZSB0aGlzIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZhc3QgcmVndWxhciBl
eHByZXNzaW9uIGJhc2VkICJwYXJzaW5nIiB1c2VkCkBAIC04Miw2ICs4NCw3IEBAIEdldE9wdGlv
bnMoJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAgICAnY29uc3RydWN0b3JzSGVh
ZGVyRmlsZT1zJyA9PiBcJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUsCiAgICAgICAgICAgICd3aW5k
b3dDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd2luZG93Q29uc3RydWN0b3JzRmlsZSwKICAgICAg
ICAgICAgJ3dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKKyAgICAgICAgICAgJ3NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGU9cycgPT4gXCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAg
ICAgICAgICAgJ3NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBc
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKQEAgLTk4LDYgKzEwMSw3
IEBAIGRpZSgnTXVzdCBzcGVjaWZ5ICNkZWZpbmUgbWFjcm9zIHVzaW5nIC0tZGVmaW5lcy4nKSB1
bmxlc3MgZGVmaW5lZCgkZGVmaW5lcyk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmls
ZSB1c2luZyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRz
dXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQg
ZmlsZSB1c2luZyAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmlu
ZWQoJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitkaWUoJ011c3Qgc3BlY2lm
eSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgk
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBz
cGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2lu
ZyAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVm
aW5lZCgkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTExMyw2
ICsxMTcsNyBAQCAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
aXNvU3Vic3BhY2VzSGVhZGVyRmlsZSk7CiAkY29uc3RydWN0b3JzSGVhZGVyRmlsZSA9IEN5Z3dp
blBhdGhJZk5lZWRlZCgkY29uc3RydWN0b3JzSGVhZGVyRmlsZSk7CiAkd2luZG93Q29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiAk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCR3
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworJHNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwpA
QCAtMTU0LDYgKzE1OSw3IEBAIG15ICVkaWN0aW9uYXJ5RGVwZW5kZW5jaWVzOwogbXkgJXN1cHBs
ZW1lbnRhbHM7CiBteSAkd2luZG93Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOworbXkgJHNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSA9ICIiOwpAQCAtMjcyLDYgKzI3OCw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChz
b3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3aW5kb3dDb25z
dHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlhc2VzIGlmICR3aW5kb3dBbGlhc2VzOwogICAgICAg
ICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIldvcmtlciIpIHsKICAgICAgICAgICAg
ICAgICAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2Rl
OworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlNoYWRvd1JlYWxtIikg
eworICAgICAgICAgICAgICAgICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0
IGVxICJEZWRpY2F0ZWRXb3JrZXIiKSB7CiAgICAgICAgICAgICAgICAgJGRlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAg
ICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTZXJ2aWNlV29ya2VyIikgewpAQCAtMzAz
LDYgKzMxMSw3IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVO
YW1lSGFzaCkgewogIyBHZW5lcmF0ZSBwYXJ0aWFsIGludGVyZmFjZXMgZm9yIENvbnN0cnVjdG9y
cy4KIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRE9NV2luZG93IiwgJHdpbmRvd0NvbnN0cnVj
dG9yc0NvZGUsICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVy
ZmFjZSgiV29ya2VyR2xvYmFsU2NvcGUiLCAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlLCAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK0dlbmVyYXRlUGFydGlh
bEludGVyZmFjZSgiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkZGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbElu
dGVyZmFjZSgiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiwgJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUiLCAkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhlZTM3ZDQxZGRiY2ZkNzNhMjNjMmE2OWRjMzNl
YThjZmJkY2RkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCkBAIC0wLDAgKzEsMjAy
IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2Ug
cHJvamVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJp
bmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQXR0
cmlidXRlLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3RJbmxpbmVzLmgiCisjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJKU0V4cG9zZWRTdGFyLmgiCisjaW5jbHVk
ZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcEFu
YWx5emVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JNYWNyb3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdWJzcGFjZUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKKworbmFt
ZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworLy8gQXR0cmlidXRlcwor
CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1H
bG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKKwordXNpbmcgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGU+OworCisvKiBIYXNoIHRhYmxlICovCisKK3N0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZUluZGV4
WzVdID0geworICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9
LAorICAgIHsgMCwgNCB9LAorICAgIHsgMSwgLTEgfSwKK307CisKKworc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlVmFsdWVzW10gPQorewor
ICAgIHsgIkV4cG9zZWRTdGFyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhw
b3NlZFN0YXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjppbmZvKCksIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlVmFsdWVzLCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
U2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IpIH07CisKK3RlbXBsYXRlPD4gSlNWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIFVOVVNFRF9QQVJBTSh2bSk7Cisg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKTsKK30KKwordGVtcGxhdGU8
PiB2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXpl
UHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7Cisg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKKyAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmlu
Zyh2bSwgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiX3MpOworICAgIG1fb3JpZ2luYWxOYW1lLnNl
dCh2bSwgdGhpcywgbmFtZVN0cmluZyk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBuYW1lU3RyaW5nLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LmdldFByb3RvdHlwZURpcmVj
dCh2bSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKTsK
K30KKworY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c19pbmZvID0g
eyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sICZKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUpIH07CisKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwpCisgICAgOiBKU0RPTVdyYXBwZXI8U2hhZG93UmVhbG1H
bG9iYWxTY29wZT4odm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSog
cHJveHkpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsKKworICAgIHN0
YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVE
T01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0
aXZlRE9NT2JqZWN0LiIpOworCit9CisKK0pTVmFsdWUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZURPTUNvbnN0cnVjdG9yLCBET01Db25zdHJ1Y3RvcklEOjpTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkp
OworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihjZWxsKTsKKyAgICB0aGlzT2Jq
ZWN0LT5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUo
KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQor
eworICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gSlNF
eHBvc2VkU3Rhcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2hhZG93
UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3RhckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIGF0dHJpYnV0ZU5hbWUpKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPjo6Z2V0PGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3Rh
ckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRy
aWJ1dGVOYW1lKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzU2hhZG93UmVhbG1HbG9i
YWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgdGhp
c09iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAg
cmV0dXJuIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCit7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OjpnZXQ8anNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7Cit9
CisKK0pTQzo6SXNvU3Vic3BhY2UqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c3Vic3BhY2VG
b3JJbXBsKEpTQzo6Vk0mIHZtKQoreworICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsKKyAgICBhdXRvJiBzcGFjZXMgPSBj
bGllbnREYXRhLnN1YnNwYWNlcygpOworICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1
YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHNw
YWNlOworICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZSA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIGNsaWVudERh
dGEubV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUsIEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZSk7CisgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0KCk7CitJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVh
Y2hhYmxlLWNvZGUiKQorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFy
ZSIpCisgICAgdm9pZCAoKm15VmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6OkpTQ2VsbCosIEpT
Qzo6U2xvdFZpc2l0b3ImKSA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dmlzaXRPdXRwdXRD
b25zdHJhaW50czsKKyAgICB2b2lkICgqanNDZWxsVmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6
OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKSA9IEpTQzo6SlNDZWxsOjp2aXNpdE91dHB1dENv
bnN0cmFpbnRzOworICAgIGlmIChteVZpc2l0T3V0cHV0Q29uc3RyYWludCAhPSBqc0NlbGxWaXNp
dE91dHB1dENvbnN0cmFpbnQpCisgICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29uc3RyYWludFNw
YWNlcygpLmFwcGVuZChzcGFjZSk7CitJR05PUkVfV0FSTklOR1NfRU5ECitJR05PUkVfV0FSTklO
R1NfRU5ECisgICAgcmV0dXJuIHNwYWNlOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQor
eworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Kj4oY2VsbCk7CisgICAgYW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRo
aXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKKyAgICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OworICAgIEJhc2U6OmFuYWx5emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKK30KKworYm9vbCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBBYnN0cmFjdFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQoreworICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOworICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBj
b250ZXh0KQoreworICAgIGF1dG8qIGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZSA9IHN0YXRpY19j
YXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsK
KyAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0
KTsKKyAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzU2hhZG93UmVhbG1HbG9iYWxTY29wZS0+
d3JhcHBlZCgpLCBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOworfQorCitTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnRvV3JhcHBlZChKU0M6OlZNJiB2
bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPih2bSwgdmFsdWUpKQorICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZmUyM2YzMDgw
NDAxMzIwM2UzMWExYjQxYmVhNmQ1OTVhODcwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2Vi
S2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGU7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBKU0RPTVdy
YXBwZXI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworcHVibGljOgorICAgIHVzaW5nIEJhc2Ug
PSBKU0RPTVdyYXBwZXI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT47CisgICAgc3RhdGljIEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsLCBKU0M6OkpTUHJv
eHkqIHByb3h5KQorICAgIHsKKyAgICAgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiBwdHIg
PSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZT4odm0pKSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShp
bXBsKSk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsKKyAgICAgICAg
cmV0dXJuIHB0cjsKKyAgICB9CisKKyAgICBzdGF0aWMgU2hhZG93UmVhbG1HbG9iYWxTY29wZSog
dG9XcmFwcGVkKEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpHbG9iYWxPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSwgSlNDOjpOb25BcnJheSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzIG1vZGU+IHN0YXRpYyBK
U0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7CisgICAgICAg
IGlmIGNvbnN0ZXhwciAobW9kZSA9PSBKU0M6OlN1YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9y
SW1wbCh2bSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZv
ckltcGwoSlNDOjpWTSYgdm0pOworICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCos
IEpTQzo6SGVhcEFuYWx5emVyJik7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4m
Jik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7Cit9
OworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lciBmaW5hbCA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CitwdWJsaWM6CisgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OkFic3RyYWN0U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOworICAgIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7Cit9
OworCitpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQmLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXI+IG93bmVyOworICAgIHJldHVybiAm
b3duZXIuZ2V0KCk7Cit9CisKK2lubGluZSB2b2lkKiB3cmFwcGVyS2V5KFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUqIHdyYXBwYWJsZU9iamVjdCkKK3sKKyAgICByZXR1cm4gd3JhcHBhYmxlT2JqZWN0
OworfQorCisKK3RlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOworICAgIHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUgPSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlKjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2U4MTJmMDQ4NjQ2NmNkOGU0ZDk3MTYyYjRjZGQzZjYzMmQyZGU4OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBAIC0wLDAgKzEsNSBAQAor
LyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRo
YXQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kCisgICAgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQK
KyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlODEyZjA0ODY0NjZj
ZDhlNGQ5NzE2MmI0Y2RkM2Y2MzJkMmRlODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmgKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0
ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8g
cmVnZW5lcmF0ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY3NmRkN2YxZmU3YTlh
Y2Q5NjllNjBjYTBlOGQ5Y2ZlYmUxNGY5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDIgQEAKK1tFeHBvc2VkPVNoYWRvd1JlYWxtXSBpbnRlcmZhY2UgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZTQ4NzEzMTZkNmEwNzM0Mjc2ZDNiNGU5NDk4Zjcw
NGY2YzVhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTAsMCAr
MSw0IEBACitwYXJ0aWFsIGludGVyZmFjZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHsKKyAgICBh
dHRyaWJ1dGUgRXhwb3NlZFN0YXJDb25zdHJ1Y3RvciBFeHBvc2VkU3RhcjsKKyAgICBhdHRyaWJ1
dGUgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAppbmRleCBjMTIzMjE1MjQ2
MWE2YzJlZDJlNTQ4MGEyZTdjNmRiNjg4NGJhNDYzLi5lMzFlMGY1ODIzY2VjZGM1MGNjYmJjNGY3
ZjI2MTY3MmFjMGU3MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcApAQCAt
MjEsNiArMjEsMTAgQEAgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Lmg6IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdlYkRPTVNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgorSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsCitET01TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaWRsCitXZWJET01TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCitTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbDoKIEpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDogU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBET01TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5o
OiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdlYkRPTVNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMzUz
M2MyMGUyZWU1Nzk2MGI1NGJmZTE1MzZkZTNmYjJmOGNjYTE4Ni4uMmFhYjdiNjI1OWU3ZjEyOTNh
ODAxZjhiMzBlMjk4ZDIyZWM3Y2M2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CkBAIC0zMTIsNiArMzEzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDYWxs
ZXJzIHNob3VsZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgog
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhj
ZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJikgPSAwOworCiAgICAgYm9vbCBkaXNwYXRjaEVycm9y
RXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29s
dW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNo
ZWRTY3JpcHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGE3ZDU1OGIyYTI0NzY5MTdmNTIxMjBkZDVkNjg2Yzc3NzkwNmQyNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxT
Y29wZS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oIgorCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1
bGVMb2FkZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKTsKKworUmVmUHRyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogd3JhcHBlciwgU2NyaXB0
TW9kdWxlTG9hZGVyKiBsb2FkZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKHdyYXBwZXIsIGxvYWRlcikpOworfQorCitTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTRE9NR2xvYmFsT2JqZWN0KiB3cmFwcGVy
LCBTY3JpcHRNb2R1bGVMb2FkZXIqIGxvYWRlcikKKyAgICA6IG1faW5jdWJhdGluZ1dyYXBwZXIo
d3JhcHBlcikKKyAgICAsIG1fcGFyZW50TG9hZGVyKGxvYWRlcikKK3sgfQorCitTY3JpcHRNb2R1
bGVMb2FkZXImIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcigpCit7CisgICAg
aWYgKG1fbW9kdWxlTG9hZGVyKQorICAgICAgICByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOworCisg
ICAgYXV0byB3cmFwcGVyID0gbV93cmFwcGVyLmdldCgpOworICAgIEFTU0VSVCh3cmFwcGVyKTsK
KworICAgIG1fbW9kdWxlTG9hZGVyID0gbV9wYXJlbnRMb2FkZXItPnNoYWRvd1JlYWxtTG9hZGVy
KHdyYXBwZXIpOworICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7Cit9CisKK0pTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UqIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OndyYXBwZXIoKQorewor
ICAgIHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
On5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkgeyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDc2NWVhNDk4N2IzNGFlNTJjMmVjZTE2NTAyNDUwMzQ4MDAxNGMzOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxh
Z3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9XZWFrLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIEpTQyB7IGNsYXNzIFZNOyB9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTsKK2NsYXNzIEpTRE9NR2xv
YmFsT2JqZWN0OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKKyAgICBmcmllbmQgY2xhc3MgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUpOworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPiB0cnlDcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBTY3JpcHRNb2R1
bGVMb2FkZXIqKTsKKyAgICB+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworCisgICAgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSYgc2VsZigpIHsgcmV0dXJuICp0aGlzOyB9CisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKTsKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKiB3cmFwcGVyKCk7CisKK3Byb3RlY3RlZDoKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KEpTRE9NR2xvYmFsT2JqZWN0KiwgU2NyaXB0TW9kdWxlTG9hZGVyKik7CisKK3ByaXZhdGU6Cisg
ICAgSlNDOjpXZWFrPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2luY3ViYXRpbmdXcmFwcGVyOworICAg
IFNjcmlwdE1vZHVsZUxvYWRlciogbV9wYXJlbnRMb2FkZXI7CisgICAgSlNDOjpXZWFrPEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+IG1fd3JhcHBlciB7IH07CisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXIgeyB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNmZkNGMzODVkZjZhOTEzMWIzN2FiOTgyOTEwNmEz
MmRmYzAwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKK1sKKyAgICBFeHBvc2VkPVNoYWRvd1JlYWxt
LAorICAgIEpTTGVnYWN5UGFyZW50PUpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UsCisgICAg
R2xvYmFsPVNoYWRvd1JlYWxtLAorICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAorXSBpbnRl
cmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlIHNlbGY7Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhlMTQ1NzBjYTEwYWI1OGQwMDFlMzM5NzZkNzBjNTVl
YWE0ODRhN2IuLjZkMTIwMjdkMzc1MjBiZWIyYjYyMmFiOTVkY2JlZTg2OTVhNWFkOWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNo
YWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAg
ICAgIChCaW5kaW5nc1Rlc3RzLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAg
ICAgICAgKEJpbmRpbmdzVGVzdHMubWFpbik6CisKIDIwMjEtMTItMDggIEJKIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEg
d2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3
aGVuIGFuIGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKaW5kZXggMDIyZDA5ZTg2OTMxMWYwMDQ0MzQwOTY5Y2EzNDk4NWNiNzIwZWE1
Ny4uY2U4YjUwNjMxMGYxOTdkMjUzYTViNTE4NTlmMTdkNmUzMTlkNWE3YiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBCaW5k
aW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAg
cmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAg
IGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3Rv
cnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9k
ZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2
aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1w
KCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJlY3Rvcnkp
OgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0
X2ZpbGUpCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAg
ICAgICAnLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVf
ZGVwZW5kZW5jeV9maWxlLAogICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3RydWN0b3JzRmls
ZScsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLAorICAgICAgICAgICAgICAgJy0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUnLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAg
ICAgICAgICAgICAgJy0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
JywgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAg
ICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAg
Jy0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhcmVkd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCkBAIC0xOTksNiArMjAwLDcgQEAgY2xhc3Mg
QmluZGluZ3NUZXN0czoKICAgICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lf
ZmlsZW5hbWUgPSAnU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCcKICAgICAgICAgZG9tX3dp
bmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCcK
ICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAgICAgc2hhZG93cmVhbG1nbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSA9ICdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwnCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5h
bWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAg
c2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKQEAgLTIxMyw2ICsyMTUsNyBAQCBjbGFz
cyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5j
eV9maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jl
c3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRl
bmN5X2ZpbGVuYW1lKQogICAgICAgICB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGly
ZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgc2hhZG93cmVh
bG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVj
dG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzaGFk
b3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29y
a19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9y
eSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAg
ICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFt
ZSkKICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lKQpAQCAtMjIxLDcgKzIyNCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2lu
KHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJl
Y3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAg
ICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rv
cnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYg
c2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1
cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRl
bmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5
X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRv
d3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgICAg
IHByaW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxl
LicpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAgICAgICAg
ICAgcmV0dXJuIC0xCkBAIC0yMzMsNiArMjM2LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAg
ICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNl
bGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5w
dXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgog
ICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAgICAgaWYg
c2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBp
bnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVu
YW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAg
ICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVj
dG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxz
ZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScs
IHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIxMGE1Y2UxZThiMDM2NGUwNmE0NmMz
ZDQzOWNhNWQwOTNmMWY5OTMuLmRjODNlMGFkOTllMGFmNjdiNDFjMDJmN2I3YTJmYTc2OGQwNmU4
NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpn
cmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUg
bW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgSW1w
cm92ZSB0ZXN0IGNvdmVyYWdlIGEgYml0IGZvciBzaGFkb3cgcmVhbG1zLCBlc3BlY2lhbGx5IHJ1
bm5pbmcgbmVzdGVkIG9yIGluIHdvcmtlciBjb250ZXh0cy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGFzc2VydF9jbG9zZWRfb3BlbmVyKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0
KToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanM6
IEFkZGVkLgorICAgICAgICAod3JhcHBlZExvZyk6CisgICAgICAgIChwcm9taXNlX3Rlc3QuYXN5
bmMgdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9kdWxlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGNoZWNrKToKKyAgICAgICAgKGxvZ19lcXVhbCk6CisgICAgICAgIChjaGVj
a19uZXN0ZWQpOgorICAgICAgICAoc2V0VmFsdWUpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydF9lcXVhbHMp
OgorICAgICAgICAoYXN5bmMgdGVzdCk6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisKIDIwMjEt
MTItMDkgIE1hdHQgV29vZHJvdyAgPG1hdHQud29vZHJvd0BnbWFpbC5jb20+CiAKICAgICAgICAg
VW5wcmVmaXggLXdlYmtpdC1tYXNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dS
ZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY5ODA0OTczZmRlYWFjY2ZiNGRhMzNi
NjNmZGI5MzgyNWNmNzUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdG8gZW5z
dXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIHdpbmRvdy5jbG9zZSgpIGFm
ZmVjdHMgbmFtZSB0YXJnZXRpbmcgaW1tZWRpYXRlbHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWV2YWx1YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk2YWFlMWRhZDU4YzBhMDc4Y2UwZDA3YmEy
OTRjNmIwNzM5YmMzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWV2YWx1YXRlLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0
aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjE0YzU1NWE4MDhiN2Iy
ZmZiN2ZjNjE3OWY3MDc0NzQ4NTc5YjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K0NPTlNPTEUgTUVTU0FHRTogNDIKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9m
IFNoYWRvd1JlYWxtLnByb3RvdHlwZS5pbXBvcnRWYWx1ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNl
cyBjb3JyZWN0IGdsb2JhbDogT0sKK3NoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZhbCB1c2Vz
IGNvcnJlY3QgZ2xvYmFsOiBPSworCitQQVNTIGNhbiBpbXBvcnQgbW9kdWxlIGluIGEgc2hhZG93
IHJlYWxtCitQQVNTIGNhbiBuZXN0IHJlYWxtcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVh
bG0taW1wb3J0VmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGQ5NzJiZjY5YzIxMjZiMDVlNWFjNDkx
MWQzNmQxNWFjN2Y0NThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93
UmVhbG0taW1wb3J0VmFsdWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBq
c2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk2MzdiOWM1ZGMwMTAwNGU1
NDA0ZjkwOTVlZmUwNDdhMjI3ODA2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0
ZXN0cyB0aGF0IFNoYWRvdyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVy
bHkgaW5zaWRlIHdvcmtlciBjb250ZXh0cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworU3RhcnRpbmcgd29ya2VyOiBzY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtlci5qcwor
UEFTUyBbV29ya2VyXSBpbXBvcnQtdmFsdWUKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBjYWxsaW5n
IG5lc3RlZCByZWFsbSB3cmFwcGVyIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitbV29ya2VyXSBz
aGFkb3dSZWFsbTogbmVzdGVkIHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKK1BB
U1MgW1dvcmtlcl0gbmVzdGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNTNhYzY0N2FiNTQ1OTg3YmE2ZTg1ZDAxZDEyMDM4Y2YyMTk1ZmM4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUg
XSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IFNo
YWRvdyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRlIHdv
cmtlciBjb250ZXh0cyIpOworICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RhcnRXb3JrZXIoInNj
cmlwdC10ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzIik7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
ZDQ5M2ZkZjA3NmU5ODQwYzFiZmQ3Mzg0NmVkZDZhZTEyNmI1MjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0tZXZhbHVhdGUuanMKQEAg
LTAsMCArMSwyMyBAQAorZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZp
b3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZSIpOworCitmdW5jdGlvbiBhc3Nl
cnRfY2xvc2VkX29wZW5lcih3LCBjbG9zZWQsIG9wZW5lcikgeworICBhc3NlcnRfZXF1YWxzKHcu
Y2xvc2VkLCBjbG9zZWQpOworICBhc3NlcnRfZXF1YWxzKHcub3BlbmVyLCBvcGVuZXIpOworfQor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9wZW5lZSA9IHdpbmRvdy5vcGVu
KCIiLCAiZ3JlYXRuYW1lIik7CisgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93
UmVhbG0oKTsKKworICAvLyBzZXR1cCByZWFsbSBuZXN0ZWQgaW4gb3V0ZXJTaGFkb3dSZWFsbQor
ICBvdXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCJ2YXIgaW5uZXJSZWFsbSA9IG5ldyBTaGFkb3dS
ZWFsbSgpOyIpOworICBvdXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCJ2YXIgY2FsbEluSW5uZXIg
PSBpbm5lclJlYWxtLmV2YWx1YXRlKFwiKGNiKSA9PiBjYigpXCIpOyIpOworCisgIGNvbnN0IGNh
bGxJbk5lc3RlZFJlYWxtID0gb3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgiKGNiKSA9PiBjYWxs
SW5Jbm5lcihjYikiKTsKKworICAvLyBjYWxsIGNsb3NlIHdpbmRvdyB0d28gbGV2ZWxzIGRlZXAK
KyAgYXNzZXJ0X2Nsb3NlZF9vcGVuZXIob3BlbmVlLCBmYWxzZSwgc2VsZik7CisgIGNhbGxJbk5l
c3RlZFJlYWxtKCgpID0+IG9wZW5lZS5jbG9zZSgpKTsKKyAgLy8gb3BlbmVlLmNsb3NlKCkKKyAg
YXNzZXJ0X2Nsb3NlZF9vcGVuZXIob3BlbmVlLCB0cnVlLCBzZWxmKTsKK30sICJ3aW5kb3cuY2xv
c2UoKSBhZmZlY3RzIG5hbWUgdGFyZ2V0aW5nIGltbWVkaWF0ZWx5Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWE1ZmUzZTIxOTdmYWI4NWJlZGY3NmE3MGFhZTgwZGRiNzZlMzA3YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBv
cnRWYWx1ZS5qcwpAQCAtMCwwICsxLDMyIEBACitkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUg
Y29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmltcG9ydFZhbHVlIik7
CisKK2Z1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uICht
c2cpIHsKKyAgICAgICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAgfTsKK30KKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3
IFNoYWRvd1JlYWxtKCk7CisgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxt
LmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrIik7CisgIGFzc2VydF9l
cXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisKKyAgY29u
c3Qgb3VyTW9kdWxlID0gYXdhaXQgaW1wb3J0KCIuL2V4YW1wbGUtbW9kdWxlLmpzIik7CisgIGFz
c2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCB0cnVlLCAiYmxvb3AiKTsKKyAgb3VyTW9kdWxl
LnNldFZhbHVlKDQyKTsKKyAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKwor
ICBjb25zdCBpbXBvcnRlZFZhbCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUo
Ii4vZXhhbXBsZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgYXNzZXJ0X2VxdWFscyhpbXBvcnRl
ZFZhbCwgdHJ1ZSk7CisgIGNvbnN0IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRlclNoYWRv
d1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInNldFZhbHVlIik7Cisg
IHNldFZhbHVlSW1wb3J0ZWQoMTAwKTsKKyAgY29uc3QgaW1wb3J0ZWRWYWwyID0gYXdhaXQgb3V0
ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1ZSIp
OworICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsMiwgMTAwKTsKKyAgYXNzZXJ0X2VxdWFscyhv
dXJNb2R1bGUudmFsdWUsIDQyKTsKK30sICJjYW4gaW1wb3J0IG1vZHVsZSBpbiBhIHNoYWRvdyBy
ZWFsbSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgb3V0ZXJTaGFk
b3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBv
dXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNr
X25lc3RlZCIpOworICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dS
ZWFsbSIpKSwgdHJ1ZSk7Cit9LCAiY2FuIG5lc3QgcmVhbG1zIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZXhhbXBsZS1tb2R1bGUuanMgYi9MYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvZXhhbXBsZS1tb2R1bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMyZWJjN2E1MDMw
ZWQ4MDQwMTAzMmIwODM5NTI5MzQ5ZTUyOGJlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9leGFtcGxlLW1vZHVsZS5qcwpAQCAtMCwwICsxLDMyIEBACit2
YXIgdmFsdWUgPSB0cnVlOworCit2YXIgY2hlY2sgPSBmdW5jdGlvbihsb2cpIHsKKyAgICBpZiAo
T2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpICE9PSBPYmplY3QucHJvdG90eXBlKSB7
CisgICAgICAgIGxvZygiZ2xvYmFsVGhpcyBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZSIp
OworICAgICAgICBsb2coT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpLnRvU3RyaW5n
KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
CitmdW5jdGlvbiBsb2dfZXF1YWwobG9nLCBtc2csIHgsIHkpIHsKKyAgICBjb25zdCByZXN1bHQg
PSB4ID09IHk7CisgICAgbG9nKGAke21zZ306ICR7cmVzdWx0ID8gJ09LJyA6ICdGQUlMRUQnfWAp
OworfQorCit2YXIgY2hlY2tfbmVzdGVkID0gZnVuY3Rpb24obG9nKSB7CisgICAgY29uc3Qgc3Ig
PSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICBnbG9iYWxUaGlzLnggPSAxMDA7CisgICAgc3IuZXZh
bHVhdGUoYGdsb2JhbFRoaXMueCA9IDQyYCk7CisgICAgY29uc3QgZiA9IHNyLmV2YWx1YXRlKGAo
KSA9PiB7cmV0dXJuIGdsb2JhbFRoaXMueDt9YCk7CisgICAgbG9nX2VxdWFsKGxvZywgImNhbGxp
bmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBmKCkpOwor
ICAgIGxvZ19lcXVhbChsb2csICJuZXN0ZWQgcmVhbG0gZXZhbCB1c2VzIGNvcnJlY3QgZ2xvYmFs
IiwgNDIsIHNyLmV2YWx1YXRlKGBnbG9iYWxUaGlzLnhgKSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZhciBzZXRWYWx1ZSA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkgeworICAgIGNvbnNvbGUubG9n
KG5ld1ZhbHVlKTsKKyAgICB2YWx1ZSA9IG5ld1ZhbHVlOworfQorCitleHBvcnQgeyB2YWx1ZSwg
c2V0VmFsdWUsIGNoZWNrLCBjaGVja19uZXN0ZWQgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL3NoYWRvdy1yZWFsbS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWExM2U1MGUx
YWQxYzFjNDNjMjdhMDEwMDNkZjk5ZTRkZjQ3ZTM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCkBAIC0wLDAgKzEs
NTEgQEAKK2ltcG9ydFNjcmlwdHMoIi4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyIpOwor
CitmdW5jdGlvbiBhc3NlcnRfZXF1YWxzKHgsIHkpIHsKKyAgICBpZiAoeCA9PT0geSkgcmV0dXJu
OworICAgIHRocm93IG5ldyBFcnJvcihgYXNzZXJ0aW9uIGZhaWx1cmU6IGV4cGVjdGVkICR7eH0s
IGdvdCAke3l9YCk7Cit9CisKK2Z1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgcmV0
dXJuIGZ1bmN0aW9uIChtc2cpIHsKKyAgICAgICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7
CisgICAgfTsKK30KKworCithc3luYyBmdW5jdGlvbiB0ZXN0KGtleSwgZikgeworICAgIHRyeSB7
CisgICAgICAgIGF3YWl0IGYoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWls
ZWQoa2V5ICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0
UGFzc2VkKGtleSk7Cit9CisKKyhhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgYXdhaXQgdGVzdCgi
aW1wb3J0LXZhbHVlIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1Jl
YWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBv
dXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNr
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFs
bSIpKSwgdHJ1ZSk7CisKKyAgICAgICAgY29uc3Qgb3VyTW9kdWxlID0gYXdhaXQgaW1wb3J0KCIu
L2V4YW1wbGUtbW9kdWxlLmpzIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZh
bHVlLCB0cnVlLCAiYmxvb3AiKTsKKyAgICAgICAgb3VyTW9kdWxlLnNldFZhbHVlKDQyKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKworICAgICAgICBjb25z
dCBpbXBvcnRlZFZhbCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhh
bXBsZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRl
ZFZhbCwgdHJ1ZSk7CisgICAgICAgIGNvbnN0IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRl
clNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInNldFZhbHVl
Iik7CisgICAgICAgIHNldFZhbHVlSW1wb3J0ZWQoMTAwKTsKKyAgICAgICAgY29uc3QgaW1wb3J0
ZWRWYWwyID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1v
ZHVsZS5qcyIsICJ2YWx1ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsMiwg
MTAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKyAgICB9
KTsKKworICAgIGF3YWl0IHRlc3QoIm5lc3RlZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29u
c3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICBjb25zdCBj
aGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1v
ZHVsZS5qcyIsICJjaGVja19uZXN0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjaGVja0Zu
KHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKyAgICB9KTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447134</attachid>
            <date>2021-12-14 08:29:41 -0800</date>
            <delta_ts>2021-12-14 12:27:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211214112940.patch</filename>
            <type>text/plain</type>
            <size>112564</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KaW5kZXggM2ZiNzc4NGVjNTdkMTY0
ZDVjNjc3NzAxOWVmYzMyZmQ4ZWYyYjVmNS4uNjUzOGQzMzZjODg5NDFlMTM3N2RlYzBkYThlNGZi
ZDcxOTdkNjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUds
b2JhbE9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFs
T2JqZWN0Lm1tCkBAIC03MSw2ICs3MSw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51
bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1p
bmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9y
dFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRXhjZXB0aW9uKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDk4OTgwNDBm
YWYyMjRiOWEzM2ZlZTc5MGIwNzY2YmU2NzYzYTU4ZTguLmIzZDJiMDRhNmQ2MzViMDQyYTI5Yjkw
NzVhOTUzYWE0ZWUxZDY3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03NTgsNiArNzU4LDcg
QEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAg
IG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aW5h
dGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEds
b2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggNTkyMmQ1NjJjNDZmODAwYjFhYzFhYWQ3ZTE4ZDc3ZDkyYjRhMjE4Ny4uZDQzNTIyOGY1OTM0
NTBiZTk5MWQ2MTllYzc4NDhjMDgxNzkwZjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTM3LDYgKzUzNyw3IEBAIGNvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxw
dHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVh
bWluZworICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogLyogU291cmNl
IGZvciBKU0dsb2JhbE9iamVjdC5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMTg0ZDFjOGJmYTdhOGYwYTRhYTUwODIzZmJhNmUz
YjgyYmQxOTlhZi4uYzMzOGQ3ZDkxMzIyZjMzNzU0ODIyN2VmNzFlYzc2Y2MwZTlmMzE5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0y
NjQsNiArMjY0LDkgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKIAogICAgIHR5
cGVkZWYgSlNQcm9taXNlKiAoKkluc3RhbnRpYXRlU3RyZWFtaW5nUHRyKShKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUsIEpTT2JqZWN0Kik7CiAgICAgSW5zdGFudGlhdGVTdHJlYW1pbmdQdHIgaW5z
dGFudGlhdGVTdHJlYW1pbmc7CisKKyAgICB0eXBlZGVmIEpTR2xvYmFsT2JqZWN0KiAoKkRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsRnVuY3Rpb25QdHIpKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyIGRlcml2ZVNoYWRvd1JlYWxtR2xv
YmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDgyLDYgKzEwODUsMTEgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCop
IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hh
ZG93UmVhbG1HbG9iYWxPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9t
TWV0aG9kVGFibGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVs
bCgpKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNHbG9iYWxPYmpl
Y3QqKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgc3RhdGljIFJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KikgeyByZXR1cm4gUnVudGltZUZsYWdzKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMTZlOGFhYzNkYWYzMWNhYmY2YjE4OWVhZDFiMzMxNmM0YWMxNTdmNy4uYzg4NmJhYzA2
M2I0MmM2NzJmMmZlYzk1MTgxZjEwMTdiNjZhZjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKQEAgLTUz
LDcgKzUzLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTaGFkb3dS
ZWFsbUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGcKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgU3RydWN0dXJlKiBzaGFkb3dSZWFsbVN0cnVjdHVyZSA9IFNo
YWRvd1JlYWxtT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5zaGFkb3dSZWFsbVByb3RvdHlwZSgpKTsKLSAgICBKU09iamVjdCogc2hhZG93UmVh
bG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBzaGFkb3dSZWFsbVN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICBKU09i
amVjdCogc2hhZG93UmVhbG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBz
aGFkb3dSZWFsbVN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHNoYWRvd1JlYWxtT2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCmluZGV4IGEyNWE0MDA4MDkzMDA4
MWYwMDhlNjNlMTE2OWRjZjc3ZTc0MzhmYzguLjFiN2JlOWRhNzE3ZDU3NjEwZjZlYmM5MjIwNTQ5
NTBkYmI4ODQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
aGFkb3dSZWFsbU9iamVjdC5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCB2b2lkIFNoYWRvd1JlYWxt
T2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3Ip
CiAKIERFRklORV9WSVNJVF9DSElMRFJFTihTaGFkb3dSZWFsbU9iamVjdCk7CiAKLVNoYWRvd1Jl
YWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSkKK1No
YWRvd1JlYWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgU2hh
ZG93UmVhbG1PYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFNoYWRv
d1JlYWxtT2JqZWN0Pih2bSkpIFNoYWRvd1JlYWxtT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAg
IG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIG1ldGhvZFRhYmxl
KTsKLSAgICBvYmplY3QtPm1fZ2xvYmFsT2JqZWN0LnNldCh2bSwgb2JqZWN0LCBnbG9iYWxPYmpl
Y3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBzaGFkb3dSZWFsbUdsb2JhbE9iamVjdCA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+ZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3Qodm0sIGdsb2JhbE9iamVjdCk7CisgICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5z
ZXQodm0sIG9iamVjdCwgc2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRv
d1JlYWxtT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bU9iamVjdC5oCmluZGV4IGQwODhmZjc4NDJlMjBhZTU0MjUyZjZkYjA1ZDRjN2U4NGY5ZWIxNWMu
LmFkYjJlZDAyMmEzNzBjNDAzOTI0OTM3YjVhYTdiNTNiOThmMjdmNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaApAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKLSAgICBzdGF0aWMgU2hhZG93
UmVhbG1PYmplY3QqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKik7CisgICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCgpIHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNDczMjgzOGYyNDZlMGIyYjE0ZmQwMWEwY2Q2MjQzZTBiNjMxMTVkNS4uMjRm
NDRlNmJjYjFjNzI1YTM0NDM2OTdjYWMwOTIzYmY0NjU2MGU3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTEyMDYsNiArMTIwNiw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCiAgICAgcGFnZS9TY3JvbGxPcHRpb25z
LmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorICAgIHBhZ2UvU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1N0cnVjdHVy
ZWRTZXJpYWxpemVPcHRpb25zLmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCkBAIC0yMDc4LDYg
KzIwNzksNyBAQCBzZXQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vRE9NSXNvU3Vic3BhY2VzLmgpCiBzZXQoQ09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9ET01Db25zdHJ1Y3RvcnMuaCkK
IHNldChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0RPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1dvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKK3NldChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFNFUlZJQ0VXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChTSEFSRURX
T1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQpAQCAtMjI2
MiwxMiArMjI2NCwxMyBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBH
RU5FUkFUT1IgSlMKICAgICBTVVBQTEVNRU5UQUxfREVQRklMRSAke1NVUFBMRU1FTlRBTF9ERVBF
TkRFTkNZX0ZJTEV9CiAgICAgUFBfRVhUUkFfT1VUUFVUCi0gICAgICAgICR7SVNPX1NVQlNQQUNF
U19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9XX0NPTlNU
UlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSAke0RF
RElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9X
X0NPTlNUUlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
fSAke1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9ICR7REVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgUFBfRVhUUkFfQVJHUwog
ICAgICAgICAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJHtJU09fU1VCU1BBQ0VTX0hFQURFUl9G
SUxFfQogICAgICAgICAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJHtDT05TVFJVQ1RPUlNfSEVB
REVSX0ZJTEV9CiAgICAgICAgIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAke1dJTkRPV19DT05T
VFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KKyAgICAgICAgLS1zaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1NIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAke1NFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFSRURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDI1YWY0ZDEwZjM3MmIzYzFlNzZiY2Y3
NDU1Y2FkYTcxZmM5YmVmZWMuLjc4ODgwNWVmZmQzYzUyNGEyZWRiZTQ3ZDM4ODFmOGYwYzRjNWI4
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMTQyNSw2ICsxNDI1LDcgQEAgJChQUk9KRUNUX0RJUikvcGFnZS9TY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCiAkKFBS
T0pFQ1RfRElSKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2Uv
U2V0dGluZ3MueWFtbAorJChQUk9KRUNUX0RJUikvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TaGFyZURhdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9w
YWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9V
bmRvSXRlbS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNTc3NmI3NzlkZjhhMzdmYmEzMmUyMTM5ZGFjYjJjYTYyYzA5MTEwNi4u
YWRmNjc3NTMzZmQyZjk2Yzk2MWNlNWI1ODUxMzFjOGMwMDNhMjFjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI0NjcsNiArMjQ2
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2Vy
dmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyV2lu
ZG93Q2xpZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NoYWRvd1Jvb3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NoYWRvd1Jvb3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTaGFkb3dSb290SW5pdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDYwNTE0MDVhZGE1M2Y2ODViY2Q4MTEyMGJhMjY5NzQwOGY3MjM4NjguLmQzZjFlYTk1
ZmE5NGM5ZDU2NGMxMWEzZjM0MzRmMDI1NjI0ZGQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMTI1NSw2ICsxMjU1LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAk
KFdlYkNvcmUpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9P
cHRpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2hhcmVEYXRhLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9w
YWdlL1VuZG9JdGVtLmlkbCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBJU09fU1VCU1BBQ0VTX0hF
QURFUl9GSUxFID0gRE9NSXNvU3Vic3BhY2VzLmgKIENPTlNUUlVDVE9SU19IRUFERVJfRklMRSA9
IERPTUNvbnN0cnVjdG9ycy5oCiBXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgPSBET01XaW5kb3dD
b25zdHJ1Y3RvcnMuaWRsCiBXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
CiBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogU0VSVklDRVdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbAogU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTIwOTEsNiArMjA5Myw3IEBA
IElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJ
TEUpIFwKICAgICAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKFNIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgXApAQCAtMjEwMSw3ICsyMTA0LDcgQEAgSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9
ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVE
SUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJV
VEVTX0ZJTEUpICQoSlNfQklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklO
RV9ERVBFTkRFTkNJRVMpCiAJJChzaGVsbCBlY2hvICQoSlNfQklORElOR19JRExTKSB8IHRyICIg
IiAiXG4iID4gSURMRmlsZU5hbWVzTGlzdC50eHQpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9Q
TEFURk9STV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3Qg
SURMRmlsZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVT
X0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5E
RU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURF
Ul9GSUxFKSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJ
TEUpIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkg
LS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1z
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSAkKFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQ
UExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9S
TV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgSURMRmls
ZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUp
IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9G
SUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxF
KSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUpIC0t
d2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNI
QURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCiAjCiAjIEVt
aXQgdGhlIHJ1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZyb20gSURMIGZpbGVzLiBOb3RlIHRo
YXQgdGhlcmUgYXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2MWZmYjBhMTc0YmI3OGU4ZWJlY2Mw
YTg5NDI3NjRjZGNmYzNjYTM2Li45YWU4NjZjY2FmMjIzNjlmOGFkZDkyOTBlMTZjZGJhYjRhYzRj
NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ1Myw2ICs0NTMsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgK
ICAgICBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmgKICAgICBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaAorICAgIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UuaAogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5oCiAgICAg
YmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCiAgICAgYmluZGluZ3MvanMvSlNX
aW5kb3dQcm94eS5oCkBAIC0xMTQwLDYgKzExNDEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaAogICAgIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuaAogICAgIHBhZ2UvU2V0dGluZ3NCYXNlLmgKKyAgICBwYWdlL1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaAogICAgIHBhZ2UvU2hhcmVEYXRhLmgKICAgICBwYWdlL1NvY2tl
dFByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCA1Nzg0NjdhY2FmNzAxMGZmMzY4ZTgwMGYzZDdkNzBiODIxM2JiNDMyLi4yM2Qz
YWI0ZjFkYzAwMTUzOTNmZDAwNzllNDJjNGQ3ZDBhMDUyMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
NjE1LDYgKzYxNSw3IEBAIGJpbmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTV2ViWFJWaWV3Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorYmluZGluZ3MvanMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTE3ODgsNiAr
MTc4OSw3IEBAIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0
YS5jcHAKIHBhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCiBwYWdlL1NldHRpbmdzQmFzZS5jcHAKK3Bh
Z2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAog
cGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC0z
ODQ0LDYgKzM4NDYsNyBAQCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKIEpTU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKIEpTU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmNw
cAogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlLmNwcAogSlNTaGFkb3dSb290LmNwcAogSlNTaGFkb3dSb290SW5pdC5jcHAKIEpTU2hhZG93
Um9vdE1vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNWIyNDJjZTIyNTMwMzUzYzNjMzYxODNlYTlkYTY2MjhiZTU2MjMz
NC4uNzI3NmIyZGQ1MmZjNDM4MmU3ZWE2MTZiOTY1MWY5ODM2ZDQyZmNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMzNiw2
ICsxMzM2LDggQEAKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVy
aW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwogCQk0NjgyRDIwMDFGNzk3ODMw
MDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMwMEM4NjNEQiAvKiBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0
REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4M0RGNDAyNzY3REY5ODAwN0QwMEM4IC8q
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggKi87IH07CisJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBD
OCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzREYzQjI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODhFRTNBMjZE
RDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFDMDA2RTAzMTQgLyog
QnJvYWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlENzdC
ODI3MDE2MjUxMDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5RDc3QjYyNzAxNjI1MDAwMTQyRkE2
IC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtOTE2MCw2ICs5MTYyLDExIEBACiAJCTQ2ODM0NERDMUVEREZB
NUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUmVjdExpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVj
dExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjNCMjc2N0RGMjYwMDdEMDBDOCAv
KiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0MyNzY3REYy
NjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzREYzRDI3
NjdERjk4MDA3RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0UyNzY3REY5ODAw
N0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NP
cmlnaW5Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAy
MDIwMDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJy
b2FkY2FzdENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwNjIs
NiArMjQwNjksOSBAQAogCQkJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55
YW1sICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3Bw
ICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywK
KwkJCQk0NjgzREYzOTI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAgKi8sCisJCQkJNDY4M0RGM0IyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuaCAqLywKKwkJCQk0NjgzREYzQzI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwgKi8sCiAJCQkJMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJl
RGF0YS5oICovLAogCQkJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRs
ICovLAogCQkJCTFBMkM2NjcxMjQyQUZFRjcwMDMwNTVFQyAvKiBTaGFyZURhdGFSZWFkZXIuY3Bw
ICovLApAQCAtMjkwODgsNiArMjkwOTgsOCBAQAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2
OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQk0NkJDQkJDMTIwODUwMDgw
MDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLywKIAkJCQk0NkJDQkJDMDIw
ODUwMDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8sCisJCQkJNDY4M0RG
M0QyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwICov
LAorCQkJCTQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlLmggKi8sCiAJCQkJOTMxQUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8qIEpTVmFsdWVJbldy
YXBwZWRPYmplY3QuaCAqLywKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5k
b3dQcm94eS5jcHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93
UHJveHkuaCAqLywKQEAgLTM1NDI4LDYgKzM1NDQwLDcgQEAKIAkJCQk1MTgyQzI1QzFGMzE0M0NE
MDA1OUJBN0MgLyogSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUYxNzUwMzFGMzU4QjNCMDBDNzQ5NTAgLyogSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlh
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUIzN0NFMUY5N0NDRDIwMEI2NTUyMyAvKiBK
U1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQw
Mjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5QzFEQzI2MjBCMDBCODBCNDggLyogSlNTaGFkb3dS
b290TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM2OTE0LDYgKzM2OTI3LDcgQEAK
IAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAvKiBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAw
RUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDU2QTdBQzgyNTZDNEY0
ODAwMkY5RERDIC8qIFNoYWRvd1Jvb3RJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5
ODFEQzI2MDMxMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4
IDUyNTEwYzMwODE4ZjBjYTkxNmE4ODQzNzdkMjI0YTFhYmE3OTViODUuLmI5YTIwZjIyOGI4MDFj
NWFkMDc3MGFjNzZlNDg1YjY0ZTVmYmNlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRl
ICJKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0u
aCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2Uu
aCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dyaXRhYmxlU3RyZWFtLmgiCkBAIC0yNjYsNiAr
MjY4LDggQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpT
RE9NV2luZG93QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KGluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIGlmIChpbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2
bSgpKSkKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJp
dHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0
PGNvbnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSgp
KSkKQEAgLTUwNiw2ICs1MTAsOCBAQCBzdGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRN
b2R1bGVMb2FkZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAg
IHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxv
YWRlcigpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93
QmFzZT4odm0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlQmFzZT4odm0pKQpAQCAtNTcwLDYgKzU3Niwy
NSBAQCBKU0M6OkpTT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRl
SW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKUwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9i
amVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZSgpKTsKIH0KIAorSlNDOjpKU0dsb2JhbE9iamVjdCogSlNET01HbG9iYWxPYmpl
Y3Q6OmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgYXV0byBkb21HbG9iYWxPYmplY3QgPSBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworCisgICAgQVNTRVJUKGRv
bUdsb2JhbE9iamVjdCk7CisgICAgYXV0byBzY29wZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OnRyeUNyZWF0ZShkb21HbG9iYWxPYmplY3QsIHNjcmlwdE1vZHVsZUxvYWRlcihkb21HbG9iYWxP
YmplY3QpKS5yZWxlYXNlTm9uTnVsbCgpOworCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlND
Ojpqc051bGwoKSk7CisgICAgYXV0byBwcm94eVN0cnVjdHVyZSA9IEpTUHJveHk6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlNDOjpqc051bGwoKSk7CisgICAgYXV0byBwcm94eSA9IEpT
UHJveHk6OmNyZWF0ZSh2bSwgcHJveHlTdHJ1Y3R1cmUpOworICAgIGF1dG8gd3JhcHBlciA9IEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoc2Nv
cGUpLCBwcm94eSk7CisKKyAgICB3cmFwcGVyLT5zZXRQcm90b3R5cGVEaXJlY3Qodm0sIHdyYXBw
ZXItPm9iamVjdFByb3RvdHlwZSgpKTsKKyAgICBwcm94eS0+c2V0VGFyZ2V0KHZtLCB3cmFwcGVy
KTsKKworICAgIHJldHVybiB3cmFwcGVyOworfQorCisKIEpTRE9NR2xvYmFsT2JqZWN0KiB0b0pT
RE9NR2xvYmFsT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCiB7CiAgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGY0ZDg2
NWQ5YTAzMjdiOGFkOTRmN2IwZGY5M2NmYzBkNTdjZThiNTguLjIyNzkyYTA5YWEwYjAxZmEwOTZi
YWJiYWMzYjU3YjhiNjlhMTZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBET01HdWFyZGVkT2Jq
ZWN0OwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogCiB1c2luZyBKU0RP
TVN0cnVjdHVyZU1hcCA9IEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRl
QmFycmllcjxKU0M6OlN0cnVjdHVyZT4+OwogdXNpbmcgRE9NR3VhcmRlZE9iamVjdFNldCA9IEhh
c2hTZXQ8RE9NR3VhcmRlZE9iamVjdCo+OwpAQCAtODYsNiArODcsNyBAQCBwdWJsaWM6CiAgICAg
SlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMmIGJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpIHsg
cmV0dXJuIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOyB9CiAKICAgICBzdGF0aWMgdm9pZCBy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGNlcHRpb24qKTsKKyAgICBzdGF0aWMgSlNDOjpKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hhZG93
UmVhbG1HbG9iYWxPYmplY3QoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAogICAg
IHZvaWQgY2xlYXJET01HdWFyZGVkT2JqZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBmODkxZTc2ZTg2NWM2YjFm
YTVjMzNiYTQ1MzhhMTI5ODY2ZjgzNDIxLi45YjJiN2VkNGYwNGFkMWUwNjQ1Zjg4YzhhMmI2ZjMy
ZjU3ZTRlMmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKQEAgLTk1LDYgKzk1LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxw
dHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9i
amVjdAogfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJv
eHkqIHByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1v
dGVET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3Rl
RE9NV2luZG93QmFzZS5jcHAKaW5kZXggYWIzZmFjNjcxMzA0ZjhjN2JjYTU5MDMwMzJlZDZjNjBi
ZGMxZmE0Yi4uYTRkNzE1ZjcwOGM2MGMwMjg2NTc5Y2YxNTkwMzU3NzAwYjdkNTRhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTUmVt
b3RlRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9CiAgICAgbnVsbHB0
ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwog
ICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVy
aXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEpTUmVtb3RlRE9NV2luZG93QmFzZTo6
SlNSZW1vdGVET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0
cjxSZW1vdGVET01XaW5kb3c+JiYgd2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFhYjYwZmZlYjZkMmI1NDliMmZlZmRkMTNhOWNm
YzBmZWRkNzViYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgiCisKKyNp
bmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJKU01pY3JvdGFza0NhbGxiYWNrLmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHku
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlND
OworCitjb25zdCBDbGFzc0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19pbmZv
ID0geyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UpIH07CisKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CisgICAg
JnN1cHBvcnRzUmljaFNvdXJjZUluZm8sCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdCwKKyAg
ICAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywKKyAgICAmcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9v
cCwKKyAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwKKyAgICAmbW9kdWxl
TG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1
bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRp
ZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRlLAorICAgICZwcm9taXNlUmVqZWN0aW9uVHJh
Y2tlciwKKyAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKKyAgICAmY3Vy
cmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAorICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCisg
ICAgJnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwsCisgICAgW10geyByZXR1cm4gZGVmYXVs
dExhbmd1YWdlKCk7IH0sCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICZjb21waWxlU3Ry
ZWFtaW5nLAorICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKKyNlbHNlCisgICAgbnVsbHB0ciwK
KyAgICBudWxscHRyLAorI2VuZGlmCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0
LAorfTsKKworSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6SlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRy
PFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCkKKyAgICA6IEpTRE9NR2xvYmFsT2JqZWN0
KHZtLCBzdHJ1Y3R1cmUsIG5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUpCisgICAgLCBtX3dyYXBwZWQoV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkqIHBy
b3h5KQoreworICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CisgICAgbV93cmFwcGVk
LT5tX3dyYXBwZXIgPSBKU0M6OldlYWsodGhpcyk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0sIG1fcHJveHkuZ2V0KCkpOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Cit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKTsKKyAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGls
ZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0
LT5tX3Byb3h5KTsKK30KKworREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UpOworCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaW5jdWJhdGluZygpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9CisKK2NvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0KiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5n
KCkgY29uc3QKK3sKKyAgICBhdXRvIGluY3ViYXRpbmdXcmFwcGVyID0gbV93cmFwcGVkLT5tX2lu
Y3ViYXRpbmdXcmFwcGVyLmdldCgpOworICAgIEFTU0VSVChpbmN1YmF0aW5nV3JhcHBlcik7Cisg
ICAgcmV0dXJuIGluY3ViYXRpbmdXcmFwcGVyOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIHN0YXRpY19jYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKS0+SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZTo6fkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoKTsKK30KKworYm9vbCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBy
ZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zdXBwb3J0c1JpY2hTb3VyY2VJ
bmZvKG9iaik7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxk
SW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0
byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVj
dCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5zaG91bGRJbnRlcnJ1cHRTY3JpcHQob2JqKTsKK30KKworYm9vbCBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0
IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAg
ICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zaG91bGRJbnRlcnJ1cHRT
Y3JpcHRCZWZvcmVUaW1lb3V0KG9iaik7Cit9CisKK1J1bnRpbWVGbGFncyBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2Jq
LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKG9iaik7
Cit9CisKK0pTQzo6U2NyaXB0RXhlY3V0aW9uU3RhdHVzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnNjcmlwdEV4ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNPYmplY3QqIG93bmVyKQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nKCk7
CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2NyaXB0RXhlY3V0
aW9uU3RhdHVzKG9iaiwgb3duZXIpOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwoSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgb2JqLT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5yZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKG9iaik7
Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cXVldWVNaWNyb3Rhc2tU
b0V2ZW50TG9vcChKU0dsb2JhbE9iamVjdCYgb2JqZWN0LCBSZWY8SlNDOjpNaWNyb3Rhc2s+JiYg
dGFzaykKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKj4oJm9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBvYmotPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoKm9iaiwgV1RGTW92ZSh0YXNrKSk7
Cit9CisKK0pTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiByZWFsbUdsb2JhbFNj
b3BlKQoreworICAgIHJldHVybiB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHJlYWxtR2xvYmFs
U2NvcGUpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlJiByZWFsbUdsb2JhbFNjb3BlKQoreworICAgIEFTU0VSVChyZWFsbUdsb2JhbFNj
b3BlLndyYXBwZXIoKSk7CisgICAgcmV0dXJuICZyZWFsbUdsb2JhbFNjb3BlLndyYXBwZXIoKS0+
cHJveHkoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ5YzBhNjRkNmIyNmM2ZTdlYmFjMDc2ZWNhZGExY2RkOGEzNTBlYWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9N
R2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGU7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CisKK2NsYXNz
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3Qg
eworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0RPTUdsb2JhbE9iamVjdDsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRpYyB2b2lkIHN1
YnNwYWNlRm9yKEpTQzo6Vk0mKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwor
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5G
TzsKKworICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVy
biAqbV93cmFwcGVkOyB9CisKKyAgICBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGlu
ZygpIGNvbnN0OworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1YmF0aW5nKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29uc3RfY2FzdDxj
b25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPmluY3ViYXRpbmcoKSk7
CisgICAgfQorCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZTsKKworICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6UnVudGltZUZsYWdzIGph
dmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyBKU0M6OlNjcmlwdEV4ZWN1dGlvblN0YXR1cyBzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBxdWV1
ZU1pY3JvdGFza1RvRXZlbnRMb29wKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8SlNDOjpNaWNy
b3Rhc2s+JiYpOworICAgIHN0YXRpYyB2b2lkIHJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwo
SlNDOjpKU0dsb2JhbE9iamVjdCopOworCitwcm90ZWN0ZWQ6CisgICAgSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8U2hhZG93UmVh
bG1HbG9iYWxTY29wZT4mJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlND
OjpKU1Byb3h5Kik7CisKKyAgICBERUNMQVJFX1ZJU0lUX0NISUxEUkVOOworCitwcml2YXRlOgor
ICAgIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBtX3dyYXBwZWQ7Cit9OworCisvLyBS
ZXR1cm5zIGEgSlNXb3JrZXJHbG9iYWxTY29wZSBvciBqc051bGwoKQorLy8gQWx3YXlzIGlnbm9y
ZXMgdGhlIGV4ZWNTdGF0ZSBhbmQgcGFzc2VkIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9i
YWxTY29wZSBpcyBpdHNlbGYgYSBnbG9iYWxPYmplY3QgYW5kIHdpbGwgYWx3YXlzIHVzZSBpdHMg
b3duIHByb3RvdHlwZSBjaGFpbi4KK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmKTsKK2lubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlKiBzY29wZSkgeyByZXR1cm4gc2NvcGUgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KK0pTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7CitpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqc2NvcGUpIDogSlNDOjpqc051bGwoKTsgfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNTM5YWExZGMxMmFmY2ZkNGIxZWU0NmQz
ZWZkMTQ2YzNjODQwMzM0MS4uMGM1NDcyMTc0ZDJmOGQ0YjU4YzI1NTcwZjhiMzk1N2NlN2EzY2Ez
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNzAsNiArNzAsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZQogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgIGRlcml2ZVNoYWRvd1Jl
YWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDNkYzU0
OWMxMDM5NWRiOWE4NTc5YWViY2E4NTQ2ZWJlOGNjYmFhMmMuLjdmNGI5NjNjMTk4ZDc4YWFkZGRi
OTI5ZTVjMGI4MWJhMzMyZTQ3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNjYsNiArNjYsNyBAQCBj
b25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRp
ZgorICAgIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlOjpKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxXb3JrbGV0R2xvYmFsU2NvcGU+JiYgaW1wbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
CmluZGV4IGFkOTNjZTA5MDJjNTdiMDU1NDg0YmI1NDM0NDE3Mzg5MzJkNDZiYTMuLmVlM2I1Mzhk
NzkxM2RkNzY2ZjVlNmIyNjJjNzI0NzMzYjZkOGFmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oIgpAQCAtNzQsNiArNzUsMTMgQEAgU2NyaXB0TW9kdWxlTG9hZGVyOjp+U2Ny
aXB0TW9kdWxlTG9hZGVyKCkKICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogfQogCitz
dGQ6OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBTY3JpcHRNb2R1bGVMb2FkZXI6OnNo
YWRvd1JlYWxtTG9hZGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIHJlYWxtR2xvYmFsKSBjb25zdAor
eworICAgIGF1dG8gbG9hZGVyID0gV1RGOjptYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4o
bV9jb250ZXh0LCBtX293bmVyVHlwZSk7CisgICAgbG9hZGVyLT5tX3NoYWRvd1JlYWxtR2xvYmFs
ID0gcmVhbG1HbG9iYWw7CisgICAgcmV0dXJuIGxvYWRlcjsKK30KKwogc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKIHsKICAgICByZXR1cm4g
aW1wb3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVm
aW5lZCgpOwpAQCAtMjQ0LDcgKzI1Miw5IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAg
aWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVF
cnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJM
LiJfcyk7CiAKLSAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgewor
ICAgIGlmIChtX3NoYWRvd1JlYWxtR2xvYmFsKSB7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShtX3NoYWRvd1JlYWxtR2xvYmFsLCBhd2Fp
dGVkVmFsdWUsIHJlc3VtZU1vZGUpKTsKKyAgICB9IGVsc2UgaWYgKG1fb3duZXJUeXBlID09IE93
bmVyVHlwZTo6RG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1v
ZHVsZVJlY29yZCwgYXdhaXRlZFZhbHVlLCByZXN1bWVNb2RlKSk7CiAgICAgfSBlbHNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKaW5kZXgg
ZTgyYThiYjQzMzcxZWE2Y2FiOGZjZmE4NDI0ZDg3ZWIzYzk4NjMxOC4uMzljOGRkNWE1MWQwZGE5
NWYyMzc1NTliZTlmMGQzMWVlMmRjMzQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKQEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3du
ZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxlTG9hZGVyKCk7CiAKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBzaGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiByZWFsbUdsb2JhbCkgY29uc3Q7CisKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50aWZpZXIgcmVz
b2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNW
YWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAgIEhhc2hT
ZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKICAgICBPd25lclR5cGUgbV9v
d25lclR5cGU7CisgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbV9zaGFkb3dSZWFsbUdsb2JhbCB7
IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKaW5kZXggNmQ0NmIx
NTQzNTYxNjUyNDUwMTc5YjA3NDdjZGI4NzRiMmVkZWQ3MS4uNDliMDJiZjBlNzYwMzBiMDZmZDU5
YTc2ZmU1NjA1NDcxYTJmNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNSZW1vdGVET01XaW5kb3cu
aCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJH
bG9iYWxTY29wZS5oIgpAQCAtNjgsNiArNjksNyBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVu
dERhdGEoVk0mIHZtKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdyhK
U0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1JlbW90ZURPTVdpbmRvdz4oKSkKICAgICAsIG1f
aGVhcENlbGxUeXBlRm9ySlNXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6
QXJnczxKU1dvcmtlckdsb2JhbFNjb3BlPigpKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU+KCkpCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwgbV9oZWFwQ2Vs
bFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6
QXJnczxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgwMzY2YTBj
N2Y3MjIwMjNmNzkzODE0YWY2ZWE1NzExZGE5ODQ3NzcuLjM3YzlhMWU2NjRkZjg1ZmJiZGU2MzMx
NjkxMTQ4YzdjNjI2Njg3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgSlND
OjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdzsKICAg
ICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2Nv
cGU7CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlOworICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBl
Rm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFhNzJiNTRiN2FmYjMwNzljNTUwMDdhNjhj
MDg4MmMyNDJhODk1OGMuLjk3MTM1MTI3YWUxZmVkODAxMjNiYjZjZGRhZmE2ODJkYjkzNDExNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC03NjAsNyArNzYwLDcgQEAgc3ViIEdldEN1c3RvbUlzUmVhY2hhYmxlCiBzdWIg
SXNET01HbG9iYWxPYmplY3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgcmV0
dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZS0+
dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJp
dHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUi
KSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKKyAgICBy
ZXR1cm4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ciIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29w
ZSIpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUi
IHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlRlc3RHbG9iYWxPYmplY3QiOwogfQogCiBz
dWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCkBAIC03NzUsNiArNzc1LDEzIEBAIHN1
YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKICAgICByZXR1cm4gSXNET01HbG9iYWxP
YmplY3QoJGludGVyZmFjZSk7CiB9CiAKK3N1YiBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3Rv
dHlwZQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKworICAgIHJldHVybiAkaW50ZXJm
YWNlLT5pc05hbWVzcGFjZU9iamVjdCgpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUiOworfQorCiBzdWIgR2VuZXJhdGVJbmRleGVkR2V0dGVyCiB7
CiAgICAgbXkgKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW5kZXhFeHBy
ZXNzaW9uKSA9IEBfOwpAQCAtMjg3MSw3ICsyODc4LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIHByb3h5KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4i
KTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVy
ZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikg
fHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0
R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNDOjpKU1Byb3h5KiBwcm94eSlcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6
YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KHZtKSkgJHtjbGFzc05hbWV9KHZtLCBzdHJ1Y3R1cmUs
IFdURk1vdmUoaW1wbCkpO1xuIik7CkBAIC0yOTEzLDcgKzI5MjAsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwg
SlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIn0gPSAxIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciOwogICAgICAgICAKICAgICAjIFByb3RvdHlwZQotICAgIHVubGVzcyAo
U2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2Ut
PmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQ
cm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUo
JGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVj
dCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwog
ICAgIH0KQEAgLTMxNzAsNyArMzE3Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ29u
c3RydWN0b3IKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVy
ZmFjZU5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAkY2xhc3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1w
bFR5cGU+JiYsIEpTV2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8
fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRH
bG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50
ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJ
bnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwogICAgIH0gZWxzaWYgKCFOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAkY2xhc3NOYW1lKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTtcblxu
Iik7CkBAIC0zMTgwLDcgKzMxODcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3Rl
RE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTV2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xv
YmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFj
ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0lu
dGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRv
ci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpO1xuIik7
CkBAIC0zOTU5LDYgKzM5NjYsOCBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9u
YWxTdHJpbmdGb3JFeHBvc2VkCiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJX
b3JrZXIiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKSIpOworICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJT
aGFkb3dSZWFsbSIpIHsKKyAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aXNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgkZXhw
b3NlZCBlcSAiV29ya2xldCIpIHsKICAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNXb3JrbGV0R2xvYmFsU2NvcGUoKSIpOwogICAgIH0gZWxzaWYgKCRl
eHBvc2VkIGVxICJBdWRpb1dvcmtsZXQiKSB7CkBAIC00NDk4LDcgKzQ1MDcsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAkaGFzaFNpemUrKzsKICAgICB9CiAKLSAgICBp
ZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKCFTaG91bGRVc2VP
cmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkanVzdEdl
bmVyYXRlVmFsdWVBcnJheSA9ICFJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKIAogICAg
ICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhhc2hUYWJsZSgkY2xhc3NOYW1lLCAkaGFzaE5hbWUsICRo
YXNoU2l6ZSwgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNo
VmFsdWUyLCBcJWNvbmRpdGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsICRqdXN0R2Vu
ZXJhdGVWYWx1ZUFycmF5KTsKQEAgLTQ1MTEsNyArNDUyMCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KIAotICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlKCRpbnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAm
JiAhJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoUHJvdG90eXBlSGFz
U3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGlu
dGVyZmFjZSkgJiYgIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlaWZ5U3RhdGljUHJvcGVydGll
cyh2bSwgJHtjbGFzc05hbWV9OjppbmZvKCksICR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7XG4iKTsKIAogICAgICAgICBteSBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVz
ID0gQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9uczsKQEAgLTQ1OTIsNyArNDYwMSw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBhc3NlcnQoIkpTQ19UT19TVFJJTkdfVEFHX1dJ
VEhPVVRfVFJBTlNJVElPTigpIHJlcXVpcmVzIHN0cmluZ3MgdHdvIG9yIG1vcmUgY2hhcmFjdGVy
cyBsb25nIikgaWYgbGVuZ3RoKCR2aXNpYmxlSW50ZXJmYWNlTmFtZSkgPCAyOwogCi0gICAgaWYg
KCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNlT3Jk
aW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KQEAgLTQ2MjQsNyAr
NDYzMyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGlt
cGwpLCBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIp
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xl
dEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRp
bnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0
c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAg
QWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJbkltcGwoJGludGVyZmFjZU5hbWUpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGwpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHZtLCBzdHJ1
Y3R1cmUsIFdURk1vdmUoaW1wbCkpXG4iKTsKQEAgLTQ2NDUsNyArNDY1NCw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Ns
YXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNXaW5kb3dQcm94eSogcHJveHkpXG4i
KTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50
ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2Jh
bFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKQEAgLTQ3NDUsNyArNDc1
NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgdm0uaGVhcC5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZCh3cmFwcGVkKCkubWVtb3J5
Q29zdCgpKTtcbiIpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1JlcG9ydEV4
dHJhTWVtb3J5Q29zdH07CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCi0gICAg
dW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFBy
b3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTT2Jq
ZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnBhcmVudFR5cGUpIHsKQEAgLTc1MDcsNyArNzUx
Niw3IEBAIHN1YiBHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0aW9uCiB7CiAgICAgbXkgKCRvdXRw
dXRBcnJheSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSkgPSBAXzsKIAotICAgIHJldHVybiBpZiAk
aW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdDsKKyAgICByZXR1cm4gaWYgU2hvdWxkVXNlT3Jk
aW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSk7CiAKICAgICBteSAkcHJvdG90eXBlQ2xh
c3NOYW1lID0gIiR7Y2xhc3NOYW1lfVByb3RvdHlwZSI7CiAKQEAgLTc3ODMsNyArNzc5Miw3IEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgIGlmICghJGdlbmVyYXRp
bmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24gYW5kICRpbnRlcmZhY2UtPnBhcmVudFR5cGUpIHsKICAg
ICAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT5wYXJlbnRUeXBl
LT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7cGFyZW50
Q2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpO1xuIik7Ci0gICAg
fSBlbHNpZiAoJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB9IGVsc2lmIChT
aG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BBUkFNKHZtKTtcbiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdsb2JhbE9iamVjdC5vYmpl
Y3RQcm90b3R5cGUoKTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCA1Yjg5MzEzZmU1Y2FlZmI4OTEyZmI0MzZmMTQ3
NjgyZjA0NzU3N2JhLi43NDFhNThiMTlmMTI4ZGU0ZjA5YjFjYjU2NmNmNTFhOTFlZDdmOGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbApAQCAtNDQsNiArNDQsNyBAQCBteSAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZTsKIG15ICRj
b25zdHJ1Y3RvcnNIZWFkZXJGaWxlOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGU7CiBteSAk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOworbXkgJHNoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlOwogbXkgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKQEAgLTY1
LDcgKzY2LDggQEAgbXkgQHN1cHBvcnRlZEdsb2JhbENvbnRleHRzID0gKAogICAgICJEZWRpY2F0
ZWRXb3JrZXIiLAogICAgICJTZXJ2aWNlV29ya2VyIiwKICAgICAiUGFpbnRXb3JrbGV0IiwKLSAg
ICAiQXVkaW9Xb3JrbGV0IgorICAgICJBdWRpb1dvcmtsZXQiLAorICAgICJTaGFkb3dSZWFsbSIs
CiApOwogCiAjIFRvZ2dsZSB0aGlzIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZhc3QgcmVndWxhciBl
eHByZXNzaW9uIGJhc2VkICJwYXJzaW5nIiB1c2VkCkBAIC04Miw2ICs4NCw3IEBAIEdldE9wdGlv
bnMoJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAgICAnY29uc3RydWN0b3JzSGVh
ZGVyRmlsZT1zJyA9PiBcJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUsCiAgICAgICAgICAgICd3aW5k
b3dDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd2luZG93Q29uc3RydWN0b3JzRmlsZSwKICAgICAg
ICAgICAgJ3dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKKyAgICAgICAgICAgJ3NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGU9cycgPT4gXCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAg
ICAgICAgICAgJ3NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBc
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKQEAgLTk4LDYgKzEwMSw3
IEBAIGRpZSgnTXVzdCBzcGVjaWZ5ICNkZWZpbmUgbWFjcm9zIHVzaW5nIC0tZGVmaW5lcy4nKSB1
bmxlc3MgZGVmaW5lZCgkZGVmaW5lcyk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmls
ZSB1c2luZyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRz
dXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQg
ZmlsZSB1c2luZyAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmlu
ZWQoJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitkaWUoJ011c3Qgc3BlY2lm
eSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgk
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBz
cGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2lu
ZyAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVm
aW5lZCgkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTExMyw2
ICsxMTcsNyBAQCAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
aXNvU3Vic3BhY2VzSGVhZGVyRmlsZSk7CiAkY29uc3RydWN0b3JzSGVhZGVyRmlsZSA9IEN5Z3dp
blBhdGhJZk5lZWRlZCgkY29uc3RydWN0b3JzSGVhZGVyRmlsZSk7CiAkd2luZG93Q29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiAk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCR3
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworJHNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwpA
QCAtMTU0LDYgKzE1OSw3IEBAIG15ICVkaWN0aW9uYXJ5RGVwZW5kZW5jaWVzOwogbXkgJXN1cHBs
ZW1lbnRhbHM7CiBteSAkd2luZG93Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOworbXkgJHNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSA9ICIiOwpAQCAtMjcyLDYgKzI3OCw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChz
b3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3aW5kb3dDb25z
dHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlhc2VzIGlmICR3aW5kb3dBbGlhc2VzOwogICAgICAg
ICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIldvcmtlciIpIHsKICAgICAgICAgICAg
ICAgICAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2Rl
OworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlNoYWRvd1JlYWxtIikg
eworICAgICAgICAgICAgICAgICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0
IGVxICJEZWRpY2F0ZWRXb3JrZXIiKSB7CiAgICAgICAgICAgICAgICAgJGRlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAg
ICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTZXJ2aWNlV29ya2VyIikgewpAQCAtMzAz
LDYgKzMxMSw3IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVO
YW1lSGFzaCkgewogIyBHZW5lcmF0ZSBwYXJ0aWFsIGludGVyZmFjZXMgZm9yIENvbnN0cnVjdG9y
cy4KIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRE9NV2luZG93IiwgJHdpbmRvd0NvbnN0cnVj
dG9yc0NvZGUsICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVy
ZmFjZSgiV29ya2VyR2xvYmFsU2NvcGUiLCAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlLCAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK0dlbmVyYXRlUGFydGlh
bEludGVyZmFjZSgiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkZGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbElu
dGVyZmFjZSgiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiwgJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUiLCAkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhlZTM3ZDQxZGRiY2ZkNzNhMjNjMmE2OWRjMzNl
YThjZmJkY2RkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCkBAIC0wLDAgKzEsMjAy
IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2Ug
cHJvamVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJp
bmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQXR0
cmlidXRlLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3RJbmxpbmVzLmgiCisjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJKU0V4cG9zZWRTdGFyLmgiCisjaW5jbHVk
ZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcEFu
YWx5emVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JNYWNyb3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdWJzcGFjZUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKKworbmFt
ZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworLy8gQXR0cmlidXRlcwor
CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1H
bG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKKwordXNpbmcgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGU+OworCisvKiBIYXNoIHRhYmxlICovCisKK3N0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZUluZGV4
WzVdID0geworICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9
LAorICAgIHsgMCwgNCB9LAorICAgIHsgMSwgLTEgfSwKK307CisKKworc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlVmFsdWVzW10gPQorewor
ICAgIHsgIkV4cG9zZWRTdGFyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhw
b3NlZFN0YXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjppbmZvKCksIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlVmFsdWVzLCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
U2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IpIH07CisKK3RlbXBsYXRlPD4gSlNWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIFVOVVNFRF9QQVJBTSh2bSk7Cisg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKTsKK30KKwordGVtcGxhdGU8
PiB2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXpl
UHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7Cisg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKKyAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmlu
Zyh2bSwgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiX3MpOworICAgIG1fb3JpZ2luYWxOYW1lLnNl
dCh2bSwgdGhpcywgbmFtZVN0cmluZyk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBuYW1lU3RyaW5nLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LmdldFByb3RvdHlwZURpcmVj
dCh2bSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKTsK
K30KKworY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c19pbmZvID0g
eyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sICZKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUpIH07CisKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwpCisgICAgOiBKU0RPTVdyYXBwZXI8U2hhZG93UmVhbG1H
bG9iYWxTY29wZT4odm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSog
cHJveHkpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsKKworICAgIHN0
YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVE
T01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0
aXZlRE9NT2JqZWN0LiIpOworCit9CisKK0pTVmFsdWUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZURPTUNvbnN0cnVjdG9yLCBET01Db25zdHJ1Y3RvcklEOjpTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkp
OworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihjZWxsKTsKKyAgICB0aGlzT2Jq
ZWN0LT5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUo
KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQor
eworICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gSlNF
eHBvc2VkU3Rhcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2hhZG93
UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3RhckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIGF0dHJpYnV0ZU5hbWUpKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPjo6Z2V0PGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3Rh
ckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRy
aWJ1dGVOYW1lKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzU2hhZG93UmVhbG1HbG9i
YWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgdGhp
c09iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAg
cmV0dXJuIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCit7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OjpnZXQ8anNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7Cit9
CisKK0pTQzo6SXNvU3Vic3BhY2UqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c3Vic3BhY2VG
b3JJbXBsKEpTQzo6Vk0mIHZtKQoreworICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsKKyAgICBhdXRvJiBzcGFjZXMgPSBj
bGllbnREYXRhLnN1YnNwYWNlcygpOworICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1
YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHNw
YWNlOworICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZSA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIGNsaWVudERh
dGEubV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUsIEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZSk7CisgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0KCk7CitJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVh
Y2hhYmxlLWNvZGUiKQorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFy
ZSIpCisgICAgdm9pZCAoKm15VmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6OkpTQ2VsbCosIEpT
Qzo6U2xvdFZpc2l0b3ImKSA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dmlzaXRPdXRwdXRD
b25zdHJhaW50czsKKyAgICB2b2lkICgqanNDZWxsVmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6
OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKSA9IEpTQzo6SlNDZWxsOjp2aXNpdE91dHB1dENv
bnN0cmFpbnRzOworICAgIGlmIChteVZpc2l0T3V0cHV0Q29uc3RyYWludCAhPSBqc0NlbGxWaXNp
dE91dHB1dENvbnN0cmFpbnQpCisgICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29uc3RyYWludFNw
YWNlcygpLmFwcGVuZChzcGFjZSk7CitJR05PUkVfV0FSTklOR1NfRU5ECitJR05PUkVfV0FSTklO
R1NfRU5ECisgICAgcmV0dXJuIHNwYWNlOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQor
eworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Kj4oY2VsbCk7CisgICAgYW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRo
aXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKKyAgICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OworICAgIEJhc2U6OmFuYWx5emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKK30KKworYm9vbCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBBYnN0cmFjdFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQoreworICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOworICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBj
b250ZXh0KQoreworICAgIGF1dG8qIGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZSA9IHN0YXRpY19j
YXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsK
KyAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0
KTsKKyAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzU2hhZG93UmVhbG1HbG9iYWxTY29wZS0+
d3JhcHBlZCgpLCBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOworfQorCitTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnRvV3JhcHBlZChKU0M6OlZNJiB2
bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPih2bSwgdmFsdWUpKQorICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZmUyM2YzMDgw
NDAxMzIwM2UzMWExYjQxYmVhNmQ1OTVhODcwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2Vi
S2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGU7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBKU0RPTVdy
YXBwZXI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworcHVibGljOgorICAgIHVzaW5nIEJhc2Ug
PSBKU0RPTVdyYXBwZXI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT47CisgICAgc3RhdGljIEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsLCBKU0M6OkpTUHJv
eHkqIHByb3h5KQorICAgIHsKKyAgICAgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiBwdHIg
PSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZT4odm0pKSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShp
bXBsKSk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsKKyAgICAgICAg
cmV0dXJuIHB0cjsKKyAgICB9CisKKyAgICBzdGF0aWMgU2hhZG93UmVhbG1HbG9iYWxTY29wZSog
dG9XcmFwcGVkKEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpHbG9iYWxPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSwgSlNDOjpOb25BcnJheSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzIG1vZGU+IHN0YXRpYyBK
U0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7CisgICAgICAg
IGlmIGNvbnN0ZXhwciAobW9kZSA9PSBKU0M6OlN1YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9y
SW1wbCh2bSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZv
ckltcGwoSlNDOjpWTSYgdm0pOworICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCos
IEpTQzo6SGVhcEFuYWx5emVyJik7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4m
Jik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7Cit9
OworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lciBmaW5hbCA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CitwdWJsaWM6CisgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OkFic3RyYWN0U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOworICAgIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7Cit9
OworCitpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQmLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXI+IG93bmVyOworICAgIHJldHVybiAm
b3duZXIuZ2V0KCk7Cit9CisKK2lubGluZSB2b2lkKiB3cmFwcGVyS2V5KFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUqIHdyYXBwYWJsZU9iamVjdCkKK3sKKyAgICByZXR1cm4gd3JhcHBhYmxlT2JqZWN0
OworfQorCisKK3RlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOworICAgIHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUgPSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlKjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2U4MTJmMDQ4NjQ2NmNkOGU0ZDk3MTYyYjRjZGQzZjYzMmQyZGU4OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBAIC0wLDAgKzEsNSBAQAor
LyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRo
YXQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kCisgICAgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQK
KyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlODEyZjA0ODY0NjZj
ZDhlNGQ5NzE2MmI0Y2RkM2Y2MzJkMmRlODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmgKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0
ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8g
cmVnZW5lcmF0ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY3NmRkN2YxZmU3YTlh
Y2Q5NjllNjBjYTBlOGQ5Y2ZlYmUxNGY5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDIgQEAKK1tFeHBvc2VkPVNoYWRvd1JlYWxtXSBpbnRlcmZhY2UgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZTQ4NzEzMTZkNmEwNzM0Mjc2ZDNiNGU5NDk4Zjcw
NGY2YzVhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTAsMCAr
MSw0IEBACitwYXJ0aWFsIGludGVyZmFjZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHsKKyAgICBh
dHRyaWJ1dGUgRXhwb3NlZFN0YXJDb25zdHJ1Y3RvciBFeHBvc2VkU3RhcjsKKyAgICBhdHRyaWJ1
dGUgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAppbmRleCBjMTIzMjE1MjQ2
MWE2YzJlZDJlNTQ4MGEyZTdjNmRiNjg4NGJhNDYzLi5lMzFlMGY1ODIzY2VjZGM1MGNjYmJjNGY3
ZjI2MTY3MmFjMGU3MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcApAQCAt
MjEsNiArMjEsMTAgQEAgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Lmg6IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdlYkRPTVNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgorSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsCitET01TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaWRsCitXZWJET01TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCitTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbDoKIEpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDogU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBET01TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5o
OiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdlYkRPTVNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMzUz
M2MyMGUyZWU1Nzk2MGI1NGJmZTE1MzZkZTNmYjJmOGNjYTE4Ni4uMmFhYjdiNjI1OWU3ZjEyOTNh
ODAxZjhiMzBlMjk4ZDIyZWM3Y2M2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CkBAIC0zMTIsNiArMzEzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDYWxs
ZXJzIHNob3VsZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgog
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhj
ZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJikgPSAwOworCiAgICAgYm9vbCBkaXNwYXRjaEVycm9y
RXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29s
dW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNo
ZWRTY3JpcHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGE3ZDU1OGIyYTI0NzY5MTdmNTIxMjBkZDVkNjg2Yzc3NzkwNmQyNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxT
Y29wZS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oIgorCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1
bGVMb2FkZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKTsKKworUmVmUHRyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogd3JhcHBlciwgU2NyaXB0
TW9kdWxlTG9hZGVyKiBsb2FkZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKHdyYXBwZXIsIGxvYWRlcikpOworfQorCitTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTRE9NR2xvYmFsT2JqZWN0KiB3cmFwcGVy
LCBTY3JpcHRNb2R1bGVMb2FkZXIqIGxvYWRlcikKKyAgICA6IG1faW5jdWJhdGluZ1dyYXBwZXIo
d3JhcHBlcikKKyAgICAsIG1fcGFyZW50TG9hZGVyKGxvYWRlcikKK3sgfQorCitTY3JpcHRNb2R1
bGVMb2FkZXImIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcigpCit7CisgICAg
aWYgKG1fbW9kdWxlTG9hZGVyKQorICAgICAgICByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOworCisg
ICAgYXV0byB3cmFwcGVyID0gbV93cmFwcGVyLmdldCgpOworICAgIEFTU0VSVCh3cmFwcGVyKTsK
KworICAgIG1fbW9kdWxlTG9hZGVyID0gbV9wYXJlbnRMb2FkZXItPnNoYWRvd1JlYWxtTG9hZGVy
KHdyYXBwZXIpOworICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7Cit9CisKK0pTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UqIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OndyYXBwZXIoKQorewor
ICAgIHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
On5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkgeyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDc2NWVhNDk4N2IzNGFlNTJjMmVjZTE2NTAyNDUwMzQ4MDAxNGMzOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxh
Z3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9XZWFrLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIEpTQyB7IGNsYXNzIFZNOyB9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTsKK2NsYXNzIEpTRE9NR2xv
YmFsT2JqZWN0OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKKyAgICBmcmllbmQgY2xhc3MgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUpOworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPiB0cnlDcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBTY3JpcHRNb2R1
bGVMb2FkZXIqKTsKKyAgICB+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworCisgICAgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSYgc2VsZigpIHsgcmV0dXJuICp0aGlzOyB9CisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKTsKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKiB3cmFwcGVyKCk7CisKK3Byb3RlY3RlZDoKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KEpTRE9NR2xvYmFsT2JqZWN0KiwgU2NyaXB0TW9kdWxlTG9hZGVyKik7CisKK3ByaXZhdGU6Cisg
ICAgSlNDOjpXZWFrPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2luY3ViYXRpbmdXcmFwcGVyOworICAg
IFNjcmlwdE1vZHVsZUxvYWRlciogbV9wYXJlbnRMb2FkZXI7CisgICAgSlNDOjpXZWFrPEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+IG1fd3JhcHBlciB7IH07CisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXIgeyB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNmZkNGMzODVkZjZhOTEzMWIzN2FiOTgyOTEwNmEz
MmRmYzAwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKK1sKKyAgICBFeHBvc2VkPVNoYWRvd1JlYWxt
LAorICAgIEpTTGVnYWN5UGFyZW50PUpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UsCisgICAg
R2xvYmFsPVNoYWRvd1JlYWxtLAorICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAorXSBpbnRl
cmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlIHNlbGY7Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhlMTQ1NzBjYTEwYWI1OGQwMDFlMzM5NzZkNzBjNTVl
YWE0ODRhN2IuLjZkMTIwMjdkMzc1MjBiZWIyYjYyMmFiOTVkY2JlZTg2OTVhNWFkOWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNo
YWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAg
ICAgIChCaW5kaW5nc1Rlc3RzLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAg
ICAgICAgKEJpbmRpbmdzVGVzdHMubWFpbik6CisKIDIwMjEtMTItMDggIEJKIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEg
d2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3
aGVuIGFuIGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKaW5kZXggMDIyZDA5ZTg2OTMxMWYwMDQ0MzQwOTY5Y2EzNDk4NWNiNzIwZWE1
Ny4uY2U4YjUwNjMxMGYxOTdkMjUzYTViNTE4NTlmMTdkNmUzMTlkNWE3YiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBCaW5k
aW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAg
cmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAg
IGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3Rv
cnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9k
ZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2
aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1w
KCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJlY3Rvcnkp
OgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0
X2ZpbGUpCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAg
ICAgICAnLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVf
ZGVwZW5kZW5jeV9maWxlLAogICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3RydWN0b3JzRmls
ZScsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLAorICAgICAgICAgICAgICAgJy0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUnLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAg
ICAgICAgICAgICAgJy0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
JywgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAg
ICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAg
Jy0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhcmVkd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCkBAIC0xOTksNiArMjAwLDcgQEAgY2xhc3Mg
QmluZGluZ3NUZXN0czoKICAgICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lf
ZmlsZW5hbWUgPSAnU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCcKICAgICAgICAgZG9tX3dp
bmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCcK
ICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAgICAgc2hhZG93cmVhbG1nbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSA9ICdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwnCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5h
bWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAg
c2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKQEAgLTIxMyw2ICsyMTUsNyBAQCBjbGFz
cyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5j
eV9maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jl
c3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRl
bmN5X2ZpbGVuYW1lKQogICAgICAgICB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGly
ZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgc2hhZG93cmVh
bG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVj
dG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzaGFk
b3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29y
a19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9y
eSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAg
ICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFt
ZSkKICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lKQpAQCAtMjIxLDcgKzIyNCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2lu
KHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJl
Y3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAg
ICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rv
cnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYg
c2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1
cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRl
bmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5
X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRv
d3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgICAg
IHByaW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxl
LicpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAgICAgICAg
ICAgcmV0dXJuIC0xCkBAIC0yMzMsNiArMjM2LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAg
ICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNl
bGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5w
dXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgog
ICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAgICAgaWYg
c2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBp
bnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVu
YW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAg
ICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVj
dG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxz
ZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScs
IHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIxMGE1Y2UxZThiMDM2NGUwNmE0NmMz
ZDQzOWNhNWQwOTNmMWY5OTMuLmRjODNlMGFkOTllMGFmNjdiNDFjMDJmN2I3YTJmYTc2OGQwNmU4
NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpn
cmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUg
bW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgSW1w
cm92ZSB0ZXN0IGNvdmVyYWdlIGEgYml0IGZvciBzaGFkb3cgcmVhbG1zLCBlc3BlY2lhbGx5IHJ1
bm5pbmcgbmVzdGVkIG9yIGluIHdvcmtlciBjb250ZXh0cy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGFzc2VydF9jbG9zZWRfb3BlbmVyKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0
KToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanM6
IEFkZGVkLgorICAgICAgICAod3JhcHBlZExvZyk6CisgICAgICAgIChwcm9taXNlX3Rlc3QuYXN5
bmMgdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9kdWxlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGNoZWNrKToKKyAgICAgICAgKGxvZ19lcXVhbCk6CisgICAgICAgIChjaGVj
a19uZXN0ZWQpOgorICAgICAgICAoc2V0VmFsdWUpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydF9lcXVhbHMp
OgorICAgICAgICAoYXN5bmMgdGVzdCk6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisKIDIwMjEt
MTItMDkgIE1hdHQgV29vZHJvdyAgPG1hdHQud29vZHJvd0BnbWFpbC5jb20+CiAKICAgICAgICAg
VW5wcmVmaXggLXdlYmtpdC1tYXNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dS
ZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY5ODA0OTczZmRlYWFjY2ZiNGRhMzNi
NjNmZGI5MzgyNWNmNzUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdG8gZW5z
dXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIHdpbmRvdy5jbG9zZSgpIGFm
ZmVjdHMgbmFtZSB0YXJnZXRpbmcgaW1tZWRpYXRlbHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWV2YWx1YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk2YWFlMWRhZDU4YzBhMDc4Y2UwZDA3YmEy
OTRjNmIwNzM5YmMzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWV2YWx1YXRlLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0
aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjE0YzU1NWE4MDhiN2Iy
ZmZiN2ZjNjE3OWY3MDc0NzQ4NTc5YjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K0NPTlNPTEUgTUVTU0FHRTogNDIKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9m
IFNoYWRvd1JlYWxtLnByb3RvdHlwZS5pbXBvcnRWYWx1ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNl
cyBjb3JyZWN0IGdsb2JhbDogT0sKK3NoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZhbCB1c2Vz
IGNvcnJlY3QgZ2xvYmFsOiBPSworCitQQVNTIGNhbiBpbXBvcnQgbW9kdWxlIGluIGEgc2hhZG93
IHJlYWxtCitQQVNTIGNhbiBuZXN0IHJlYWxtcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVh
bG0taW1wb3J0VmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGQ5NzJiZjY5YzIxMjZiMDVlNWFjNDkx
MWQzNmQxNWFjN2Y0NThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93
UmVhbG0taW1wb3J0VmFsdWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBq
c2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJmNDQ5MTliMDNhODI0ZjE2
NjQ1MGU4YmY3NzE4YzczOTQ1MTAxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0
ZXN0cyB0aGF0IFNoYWRvdyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVy
bHkgaW5zaWRlIHdvcmtlciBjb250ZXh0cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvc2hhZG93LXJlYWxtLXdvcmtlci5qcworUEFT
UyBbV29ya2VyXSBpbXBvcnQtdmFsdWUKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBjYWxsaW5nIG5l
c3RlZCByZWFsbSB3cmFwcGVyIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitbV29ya2VyXSBzaGFk
b3dSZWFsbTogbmVzdGVkIHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKK1BBU1Mg
W1dvcmtlcl0gbmVzdGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2Vy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMjgxMTk4NTY5MmRkOTk1ZTc2MmVhNjEzODE5NzJkYmU4NmZiMzViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKQEAgLTAsMCArMSwx
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAt
LT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IFNoYWRv
dyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRlIHdvcmtl
ciBjb250ZXh0cyIpOworICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RhcnRXb3JrZXIoInJlc291
cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpzIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVzb3VyY2VzL2V4YW1wbGUtbW9kdWxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2Vz
L2V4YW1wbGUtbW9kdWxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMmViYzdhNTAzMGVkODA0MDEwMzJiMDgz
OTUyOTM0OWU1MjhiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJj
ZXMvZXhhbXBsZS1tb2R1bGUuanMKQEAgLTAsMCArMSwzMiBAQAordmFyIHZhbHVlID0gdHJ1ZTsK
KwordmFyIGNoZWNrID0gZnVuY3Rpb24obG9nKSB7CisgICAgaWYgKE9iamVjdC5nZXRQcm90b3R5
cGVPZihnbG9iYWxUaGlzKSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgeworICAgICAgICBsb2coImds
b2JhbFRoaXMgcHJvdG90eXBlIGlzIE9iamVjdC5wcm90b3R5cGUiKTsKKyAgICAgICAgbG9nKE9i
amVjdC5nZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzKS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gbG9nX2Vx
dWFsKGxvZywgbXNnLCB4LCB5KSB7CisgICAgY29uc3QgcmVzdWx0ID0geCA9PSB5OworICAgIGxv
ZyhgJHttc2d9OiAke3Jlc3VsdCA/ICdPSycgOiAnRkFJTEVEJ31gKTsKK30KKwordmFyIGNoZWNr
X25lc3RlZCA9IGZ1bmN0aW9uKGxvZykgeworICAgIGNvbnN0IHNyID0gbmV3IFNoYWRvd1JlYWxt
KCk7CisgICAgZ2xvYmFsVGhpcy54ID0gMTAwOworICAgIHNyLmV2YWx1YXRlKGBnbG9iYWxUaGlz
LnggPSA0MmApOworICAgIGNvbnN0IGYgPSBzci5ldmFsdWF0ZShgKCkgPT4ge3JldHVybiBnbG9i
YWxUaGlzLng7fWApOworICAgIGxvZ19lcXVhbChsb2csICJjYWxsaW5nIG5lc3RlZCByZWFsbSB3
cmFwcGVyIHVzZXMgY29ycmVjdCBnbG9iYWwiLCA0MiwgZigpKTsKKyAgICBsb2dfZXF1YWwobG9n
LCAibmVzdGVkIHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBzci5ldmFsdWF0
ZShgZ2xvYmFsVGhpcy54YCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2YXIgc2V0VmFsdWUg
PSBmdW5jdGlvbiAobmV3VmFsdWUpIHsKKyAgICBjb25zb2xlLmxvZyhuZXdWYWx1ZSk7CisgICAg
dmFsdWUgPSBuZXdWYWx1ZTsKK30KKworZXhwb3J0IHsgdmFsdWUsIHNldFZhbHVlLCBjaGVjaywg
Y2hlY2tfbmVzdGVkIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hh
ZG93LXJlYWxtLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVh
bG0td29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhMTNlNTBlMWFkMWMxYzQzYzI3YTAxMDAzZGY5OWU0
ZGY0N2UzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hh
ZG93LXJlYWxtLXdvcmtlci5qcwpAQCAtMCwwICsxLDUxIEBACitpbXBvcnRTY3JpcHRzKCIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiKTsKKworZnVuY3Rpb24gYXNzZXJ0X2VxdWFscyh4
LCB5KSB7CisgICAgaWYgKHggPT09IHkpIHJldHVybjsKKyAgICB0aHJvdyBuZXcgRXJyb3IoYGFz
c2VydGlvbiBmYWlsdXJlOiBleHBlY3RlZCAke3h9LCBnb3QgJHt5fWApOworfQorCitmdW5jdGlv
biB3cmFwcGVkTG9nKHByZWZpeCkgeworICAgIHJldHVybiBmdW5jdGlvbiAobXNnKSB7CisgICAg
ICAgIGRlYnVnKHByZWZpeCArICI6ICIgKyBtc2cpOworICAgIH07Cit9CisKKworYXN5bmMgZnVu
Y3Rpb24gdGVzdChrZXksIGYpIHsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBmKCk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKGtleSArIGUudG9TdHJpbmcoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFBhc3NlZChrZXkpOworfQorCisoYXN5bmMg
ZnVuY3Rpb24gKCkgeworICAgIGF3YWl0IHRlc3QoImltcG9ydC12YWx1ZSIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOwor
ICAgICAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1
ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJjaGVjayIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93UmVhbG0iKSksIHRydWUpOworCisgICAgICAgIGNv
bnN0IG91ck1vZHVsZSA9IGF3YWl0IGltcG9ydCgiLi9leGFtcGxlLW1vZHVsZS5qcyIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwgImJsb29wIik7CisgICAg
ICAgIG91ck1vZHVsZS5zZXRWYWx1ZSg0Mik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9k
dWxlLnZhbHVlLCA0Mik7CisKKyAgICAgICAgY29uc3QgaW1wb3J0ZWRWYWwgPSBhd2FpdCBvdXRl
clNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwsIHRydWUpOworICAgICAgICBjb25z
dCBzZXRWYWx1ZUltcG9ydGVkID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgi
Li9leGFtcGxlLW1vZHVsZS5qcyIsICJzZXRWYWx1ZSIpOworICAgICAgICBzZXRWYWx1ZUltcG9y
dGVkKDEwMCk7CisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsMiA9IGF3YWl0IG91dGVyU2hhZG93
UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7CisgICAgfSk7CisKKyAgICBhd2FpdCB0ZXN0KCJuZXN0
ZWQiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcg
U2hhZG93UmVhbG0oKTsKKyAgICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93
UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2tfbmVzdGVkIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIp
KSwgdHJ1ZSk7CisgICAgfSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzIGIv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJiZDQ5M2ZkZjA3NmU5ODQwYzFiZmQ3Mzg0NmVkZDZhZTEyNmI1MjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0tZXZhbHVh
dGUuanMKQEAgLTAsMCArMSwyMyBAQAorZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJl
Y3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZSIpOworCitmdW5j
dGlvbiBhc3NlcnRfY2xvc2VkX29wZW5lcih3LCBjbG9zZWQsIG9wZW5lcikgeworICBhc3NlcnRf
ZXF1YWxzKHcuY2xvc2VkLCBjbG9zZWQpOworICBhc3NlcnRfZXF1YWxzKHcub3BlbmVyLCBvcGVu
ZXIpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9wZW5lZSA9IHdp
bmRvdy5vcGVuKCIiLCAiZ3JlYXRuYW1lIik7CisgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBu
ZXcgU2hhZG93UmVhbG0oKTsKKworICAvLyBzZXR1cCByZWFsbSBuZXN0ZWQgaW4gb3V0ZXJTaGFk
b3dSZWFsbQorICBvdXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCJ2YXIgaW5uZXJSZWFsbSA9IG5l
dyBTaGFkb3dSZWFsbSgpOyIpOworICBvdXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCJ2YXIgY2Fs
bEluSW5uZXIgPSBpbm5lclJlYWxtLmV2YWx1YXRlKFwiKGNiKSA9PiBjYigpXCIpOyIpOworCisg
IGNvbnN0IGNhbGxJbk5lc3RlZFJlYWxtID0gb3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgiKGNi
KSA9PiBjYWxsSW5Jbm5lcihjYikiKTsKKworICAvLyBjYWxsIGNsb3NlIHdpbmRvdyB0d28gbGV2
ZWxzIGRlZXAKKyAgYXNzZXJ0X2Nsb3NlZF9vcGVuZXIob3BlbmVlLCBmYWxzZSwgc2VsZik7Cisg
IGNhbGxJbk5lc3RlZFJlYWxtKCgpID0+IG9wZW5lZS5jbG9zZSgpKTsKKyAgLy8gb3BlbmVlLmNs
b3NlKCkKKyAgYXNzZXJ0X2Nsb3NlZF9vcGVuZXIob3BlbmVlLCB0cnVlLCBzZWxmKTsKK30sICJ3
aW5kb3cuY2xvc2UoKSBhZmZlY3RzIG5hbWUgdGFyZ2V0aW5nIGltbWVkaWF0ZWx5Iik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFs
dWUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFs
dWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDg1YTBlNDc1NDRkNDk3ZGZjZGFjNGY0OTA0MGFhMDEzMmI4MWRj
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9TaGFkb3dS
ZWFsbS1pbXBvcnRWYWx1ZS5qcwpAQCAtMCwwICsxLDM0IEBACitkZXNjcmlwdGlvbigiVGVzdCB0
byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmltcG9y
dFZhbHVlIik7CisKK2Z1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgcmV0dXJuIGZ1
bmN0aW9uIChtc2cpIHsKKyAgICAgICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAg
fTsKK30KKworY29uc3QgbW9kdWxlX3BhdGggPSAiLi4vcmVzb3VyY2VzL2V4YW1wbGUtbW9kdWxl
LmpzIjsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBvdXRlclNoYWRvd1Jl
YWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNo
YWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAiY2hlY2siKTsKKyAgYXNzZXJ0X2Vx
dWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICBjb25z
dCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBvcnQobW9kdWxlX3BhdGgpOworICBhc3NlcnRfZXF1YWxz
KG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwgImJsb29wIik7CisgIG91ck1vZHVsZS5zZXRWYWx1ZSg0
Mik7CisgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7CisKKyAgY29uc3QgaW1w
b3J0ZWRWYWwgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRo
LCAidmFsdWUiKTsKKyAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbCwgdHJ1ZSk7CisgIGNvbnN0
IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKG1v
ZHVsZV9wYXRoLCAic2V0VmFsdWUiKTsKKyAgc2V0VmFsdWVJbXBvcnRlZCgxMDApOworICBjb25z
dCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVs
ZV9wYXRoLCAidmFsdWUiKTsKKyAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7Cisg
IGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7Cit9LCAiY2FuIGltcG9ydCBtb2R1
bGUgaW4gYSBzaGFkb3cgcmVhbG0iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAg
IGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICBjb25zdCBj
aGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwg
ImNoZWNrX25lc3RlZCIpOworICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJz
aGFkb3dSZWFsbSIpKSwgdHJ1ZSk7Cit9LCAiY2FuIG5lc3QgcmVhbG1zIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447147</attachid>
            <date>2021-12-14 12:27:15 -0800</date>
            <delta_ts>2022-01-11 11:15:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20211214152714.patch</filename>
            <type>text/plain</type>
            <size>112015</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yzk0ZTM3ZTE0NGMxODIzNjVhNmNlNWE2MjI3MWZlYTNkMDdhYzk5Li40Y2MxZjI1ZTY2NzNiNGVl
NDdkMzBhYWUxNGM5ZTc0NmYzMzhmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMS0xMi0wOSAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9jZWR1cmU6OnNldE5lZWRzUENUb09y
aWdpbk1hcCBzaG91bGQgY2FsbCBDb2RlOjpmb3JjZVByZXNlcnZhdGlvbk9mQjNPcmlnaW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMGFmMzMzMGU5YTE5NDNhYzlmNTY4NDNmMjVmMTZhNjdjOTdjYTA1Mi4uMzlh
MDk2ZTk0NTVjYWE3OTgwMGY2YzQzYTA0Y2RlMTI4MGVjM2FiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkxIEBACisyMDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBm
b3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2VzIGEgbmV3IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEgc2hhZG93IHJl
YWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBKUyhET00pR2xv
YmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRob2RzIHRvIHRo
ZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAg
ICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hpY2ggaXQgdXNl
cyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJlZCB0byB1c2Ug
dGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFsdWF0aW5nIG1v
ZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3RtZW50IHRvIHRo
ZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJlbnQgZHJhZnQg
c3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9iYWxTY29wZSBp
cyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEgY3VzdG9tIHBy
b3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAgICAgICAgcHJv
cGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVhbG1gIG9yIGBF
eHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL1NoYWRvd1Jl
YWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRl
cnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlw
dEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxv
YWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
SGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBkb20vUHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuaC4KKwogMjAyMS0xMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBUcnkgbm90IHRvIGluY2x1ZGUgbm9uLWNvbnRlbnQgdHlw
ZSBvZiBpbmxpbmUgYm94ZXMgaW4gdGhlIHZpc3VhbCByZW9yZGVyaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk3OGYyNzNkZjhh
ZmE3ODA5MzhkNWQ0ZjdkMGE2NmQ2ODhmNWM0MTQuLjNkY2VhNmNhMjZlMjhiZGUzOGY0YjY5Mzk0
NmVlMjkyMDMwN2E0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElH
bG9iYWxPYmplY3QuY3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVT
dHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgIG51bGxw
dHIsIC8vIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiB2b2lkIEpTQVBJR2xv
YmFsT2JqZWN0OjpyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KaW5kZXggM2ZiNzc4NGVjNTdkMTY0
ZDVjNjc3NzAxOWVmYzMyZmQ4ZWYyYjVmNS4uNjUzOGQzMzZjODg5NDFlMTM3N2RlYzBkYThlNGZi
ZDcxOTdkNjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUds
b2JhbE9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFs
T2JqZWN0Lm1tCkBAIC03MSw2ICs3MSw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTQVBJR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51
bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1p
bmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9y
dFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRXhjZXB0aW9uKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDk4OTgwNDBm
YWYyMjRiOWEzM2ZlZTc5MGIwNzY2YmU2NzYzYTU4ZTguLmIzZDJiMDRhNmQ2MzViMDQyYTI5Yjkw
NzVhOTUzYWE0ZWUxZDY3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03NTgsNiArNzU4LDcg
QEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAg
IG51bGxwdHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aW5h
dGVTdHJlYW1pbmcKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEds
b2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggNTkyMmQ1NjJjNDZmODAwYjFhYzFhYWQ3ZTE4ZDc3ZDkyYjRhMjE4Ny4uZDQzNTIyOGY1OTM0
NTBiZTk5MWQ2MTllYzc4NDhjMDgxNzkwZjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTM3LDYgKzUzNyw3IEBAIGNvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxw
dHIsIC8vIGNvbXBpbGVTdHJlYW1pbmcKICAgICBudWxscHRyLCAvLyBpbnN0YW50aWF0ZVN0cmVh
bWluZworICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogLyogU291cmNl
IGZvciBKU0dsb2JhbE9iamVjdC5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMTg0ZDFjOGJmYTdhOGYwYTRhYTUwODIzZmJhNmUz
YjgyYmQxOTlhZi4uYzMzOGQ3ZDkxMzIyZjMzNzU0ODIyN2VmNzFlYzc2Y2MwZTlmMzE5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0y
NjQsNiArMjY0LDkgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKIAogICAgIHR5
cGVkZWYgSlNQcm9taXNlKiAoKkluc3RhbnRpYXRlU3RyZWFtaW5nUHRyKShKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUsIEpTT2JqZWN0Kik7CiAgICAgSW5zdGFudGlhdGVTdHJlYW1pbmdQdHIgaW5z
dGFudGlhdGVTdHJlYW1pbmc7CisKKyAgICB0eXBlZGVmIEpTR2xvYmFsT2JqZWN0KiAoKkRlcml2
ZVNoYWRvd1JlYWxtR2xvYmFsRnVuY3Rpb25QdHIpKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyIGRlcml2ZVNoYWRvd1JlYWxtR2xv
YmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDgyLDYgKzEwODUsMTEgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCop
IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hh
ZG93UmVhbG1HbG9iYWxPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9t
TWV0aG9kVGFibGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVs
bCgpKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNHbG9iYWxPYmpl
Y3QqKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgc3RhdGljIFJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KikgeyByZXR1cm4gUnVudGltZUZsYWdzKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMTZlOGFhYzNkYWYzMWNhYmY2YjE4OWVhZDFiMzMxNmM0YWMxNTdmNy4uYzg4NmJhYzA2
M2I0MmM2NzJmMmZlYzk1MTgxZjEwMTdiNjZhZjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAKQEAgLTUz
LDcgKzUzLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTaGFkb3dS
ZWFsbUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGcKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgU3RydWN0dXJlKiBzaGFkb3dSZWFsbVN0cnVjdHVyZSA9IFNo
YWRvd1JlYWxtT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5zaGFkb3dSZWFsbVByb3RvdHlwZSgpKTsKLSAgICBKU09iamVjdCogc2hhZG93UmVh
bG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBzaGFkb3dSZWFsbVN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICBKU09i
amVjdCogc2hhZG93UmVhbG1PYmplY3QgPSBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKHZtLCBz
aGFkb3dSZWFsbVN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHNoYWRvd1JlYWxtT2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3BwCmluZGV4IGEyNWE0MDA4MDkzMDA4
MWYwMDhlNjNlMTE2OWRjZjc3ZTc0MzhmYzguLjFiN2JlOWRhNzE3ZDU3NjEwZjZlYmM5MjIwNTQ5
NTBkYmI4ODQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
aGFkb3dSZWFsbU9iamVjdC5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCB2b2lkIFNoYWRvd1JlYWxt
T2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3Ip
CiAKIERFRklORV9WSVNJVF9DSElMRFJFTihTaGFkb3dSZWFsbU9iamVjdCk7CiAKLVNoYWRvd1Jl
YWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSkKK1No
YWRvd1JlYWxtT2JqZWN0KiBTaGFkb3dSZWFsbU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgU2hh
ZG93UmVhbG1PYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFNoYWRv
d1JlYWxtT2JqZWN0Pih2bSkpIFNoYWRvd1JlYWxtT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAg
IG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlV2l0aEN1c3RvbU1ldGhvZFRhYmxlKHZtLCBK
U0dsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIG1ldGhvZFRhYmxl
KTsKLSAgICBvYmplY3QtPm1fZ2xvYmFsT2JqZWN0LnNldCh2bSwgb2JqZWN0LCBnbG9iYWxPYmpl
Y3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBzaGFkb3dSZWFsbUdsb2JhbE9iamVjdCA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+ZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3Qodm0sIGdsb2JhbE9iamVjdCk7CisgICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5z
ZXQodm0sIG9iamVjdCwgc2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRv
d1JlYWxtT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bU9iamVjdC5oCmluZGV4IGQwODhmZjc4NDJlMjBhZTU0MjUyZjZkYjA1ZDRjN2U4NGY5ZWIxNWMu
LmFkYjJlZDAyMmEzNzBjNDAzOTI0OTM3YjVhYTdiNTNiOThmMjdmNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaApAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKLSAgICBzdGF0aWMgU2hhZG93
UmVhbG1PYmplY3QqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKik7CisgICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCgpIHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNDczMjgzOGYyNDZlMGIyYjE0ZmQwMWEwY2Q2MjQzZTBiNjMxMTVkNS4uMjRm
NDRlNmJjYjFjNzI1YTM0NDM2OTdjYWMwOTIzYmY0NjU2MGU3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTEyMDYsNiArMTIwNiw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCiAgICAgcGFnZS9TY3JvbGxPcHRpb25z
LmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorICAgIHBhZ2UvU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1N0cnVjdHVy
ZWRTZXJpYWxpemVPcHRpb25zLmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCkBAIC0yMDc4LDYg
KzIwNzksNyBAQCBzZXQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vRE9NSXNvU3Vic3BhY2VzLmgpCiBzZXQoQ09OU1RSVUNUT1JTX0hFQURF
Ul9GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9ET01Db25zdHJ1Y3RvcnMuaCkK
IHNldChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0RPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1dvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKK3NldChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFNFUlZJQ0VXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChTSEFSRURX
T1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQpAQCAtMjI2
MiwxMiArMjI2NCwxMyBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBH
RU5FUkFUT1IgSlMKICAgICBTVVBQTEVNRU5UQUxfREVQRklMRSAke1NVUFBMRU1FTlRBTF9ERVBF
TkRFTkNZX0ZJTEV9CiAgICAgUFBfRVhUUkFfT1VUUFVUCi0gICAgICAgICR7SVNPX1NVQlNQQUNF
U19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9XX0NPTlNU
UlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSAke0RF
RElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICR7SVNPX1NV
QlNQQUNFU19IRUFERVJfRklMRX0gJHtDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEV9ICR7V0lORE9X
X0NPTlNUUlVDVE9SU19GSUxFfSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
fSAke1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9ICR7REVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgUFBfRVhUUkFfQVJHUwog
ICAgICAgICAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJHtJU09fU1VCU1BBQ0VTX0hFQURFUl9G
SUxFfQogICAgICAgICAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJHtDT05TVFJVQ1RPUlNfSEVB
REVSX0ZJTEV9CiAgICAgICAgIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAke1dJTkRPV19DT05T
VFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KKyAgICAgICAgLS1zaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1NIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAke1NFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFSRURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDI1YWY0ZDEwZjM3MmIzYzFlNzZiY2Y3
NDU1Y2FkYTcxZmM5YmVmZWMuLjc4ODgwNWVmZmQzYzUyNGEyZWRiZTQ3ZDM4ODFmOGYwYzRjNWI4
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMTQyNSw2ICsxNDI1LDcgQEAgJChQUk9KRUNUX0RJUikvcGFnZS9TY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCiAkKFBS
T0pFQ1RfRElSKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2Uv
U2V0dGluZ3MueWFtbAorJChQUk9KRUNUX0RJUikvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TaGFyZURhdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9w
YWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9V
bmRvSXRlbS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNTc3NmI3NzlkZjhhMzdmYmEzMmUyMTM5ZGFjYjJjYTYyYzA5MTEwNi4u
YWRmNjc3NTMzZmQyZjk2Yzk2MWNlNWI1ODUxMzFjOGMwMDNhMjFjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI0NjcsNiArMjQ2
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2Vy
dmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyV2lu
ZG93Q2xpZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NoYWRvd1Jvb3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NoYWRvd1Jvb3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTaGFkb3dSb290SW5pdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDYwNTE0MDVhZGE1M2Y2ODViY2Q4MTEyMGJhMjY5NzQwOGY3MjM4NjguLmQzZjFlYTk1
ZmE5NGM5ZDU2NGMxMWEzZjM0MzRmMDI1NjI0ZGQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMTI1NSw2ICsxMjU1LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAk
KFdlYkNvcmUpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9P
cHRpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2hhcmVEYXRhLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1N0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9w
YWdlL1VuZG9JdGVtLmlkbCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBJU09fU1VCU1BBQ0VTX0hF
QURFUl9GSUxFID0gRE9NSXNvU3Vic3BhY2VzLmgKIENPTlNUUlVDVE9SU19IRUFERVJfRklMRSA9
IERPTUNvbnN0cnVjdG9ycy5oCiBXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUgPSBET01XaW5kb3dD
b25zdHJ1Y3RvcnMuaWRsCiBXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
CiBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogU0VSVklDRVdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbAogU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTIwOTEsNiArMjA5Myw3IEBA
IElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJ
TEUpIFwKICAgICAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKFNIQURPV1JFQUxNR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgXApAQCAtMjEwMSw3ICsyMTA0LDcgQEAgSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9
ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVE
SUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJV
VEVTX0ZJTEUpICQoSlNfQklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklO
RV9ERVBFTkRFTkNJRVMpCiAJJChzaGVsbCBlY2hvICQoSlNfQklORElOR19JRExTKSB8IHRyICIg
IiAiXG4iID4gSURMRmlsZU5hbWVzTGlzdC50eHQpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9Q
TEFURk9STV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3Qg
SURMRmlsZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVT
X0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5E
RU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURF
Ul9GSUxFKSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJ
TEUpIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkg
LS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1z
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSAkKFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQ
UExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9S
TV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgSURMRmls
ZU5hbWVzTGlzdC50eHQgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUp
IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9G
SUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxF
KSAtLWNvbnN0cnVjdG9yc0hlYWRlckZpbGUgJChDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUpIC0t
d2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNI
QURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCiAjCiAjIEVt
aXQgdGhlIHJ1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZyb20gSURMIGZpbGVzLiBOb3RlIHRo
YXQgdGhlcmUgYXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2MWZmYjBhMTc0YmI3OGU4ZWJlY2Mw
YTg5NDI3NjRjZGNmYzNjYTM2Li45YWU4NjZjY2FmMjIzNjlmOGFkZDkyOTBlMTZjZGJhYjRhYzRj
NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ1Myw2ICs0NTMsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgK
ICAgICBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmgKICAgICBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaAorICAgIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UuaAogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5oCiAgICAg
YmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCiAgICAgYmluZGluZ3MvanMvSlNX
aW5kb3dQcm94eS5oCkBAIC0xMTQwLDYgKzExNDEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaAogICAgIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuaAogICAgIHBhZ2UvU2V0dGluZ3NCYXNlLmgKKyAgICBwYWdlL1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaAogICAgIHBhZ2UvU2hhcmVEYXRhLmgKICAgICBwYWdlL1NvY2tl
dFByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCA1Nzg0NjdhY2FmNzAxMGZmMzY4ZTgwMGYzZDdkNzBiODIxM2JiNDMyLi4yM2Qz
YWI0ZjFkYzAwMTUzOTNmZDAwNzllNDJjNGQ3ZDBhMDUyMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
NjE1LDYgKzYxNSw3IEBAIGJpbmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTV2ViWFJWaWV3Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorYmluZGluZ3MvanMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTE3ODgsNiAr
MTc4OSw3IEBAIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0
YS5jcHAKIHBhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCiBwYWdlL1NldHRpbmdzQmFzZS5jcHAKK3Bh
Z2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAog
cGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC0z
ODQ0LDYgKzM4NDYsNyBAQCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKIEpTU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKIEpTU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmNw
cAogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlLmNwcAogSlNTaGFkb3dSb290LmNwcAogSlNTaGFkb3dSb290SW5pdC5jcHAKIEpTU2hhZG93
Um9vdE1vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNWIyNDJjZTIyNTMwMzUzYzNjMzYxODNlYTlkYTY2MjhiZTU2MjMz
NC4uNzI3NmIyZGQ1MmZjNDM4MmU3ZWE2MTZiOTY1MWY5ODM2ZDQyZmNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMzNiw2
ICsxMzM2LDggQEAKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVy
aW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwogCQk0NjgyRDIwMDFGNzk3ODMw
MDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMwMEM4NjNEQiAvKiBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0
REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4M0RGNDAyNzY3REY5ODAwN0QwMEM4IC8q
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggKi87IH07CisJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBD
OCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzREYzQjI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODhFRTNBMjZE
RDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFDMDA2RTAzMTQgLyog
QnJvYWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlENzdC
ODI3MDE2MjUxMDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5RDc3QjYyNzAxNjI1MDAwMTQyRkE2
IC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtOTE2MCw2ICs5MTYyLDExIEBACiAJCTQ2ODM0NERDMUVEREZB
NUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUmVjdExpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVj
dExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjNCMjc2N0RGMjYwMDdEMDBDOCAv
KiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0MyNzY3REYy
NjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzREYzRDI3
NjdERjk4MDA3RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0UyNzY3REY5ODAw
N0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NP
cmlnaW5Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAy
MDIwMDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJy
b2FkY2FzdENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwNjIs
NiArMjQwNjksOSBAQAogCQkJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55
YW1sICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3Bw
ICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywK
KwkJCQk0NjgzREYzOTI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAgKi8sCisJCQkJNDY4M0RGM0IyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuaCAqLywKKwkJCQk0NjgzREYzQzI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwgKi8sCiAJCQkJMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJl
RGF0YS5oICovLAogCQkJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRs
ICovLAogCQkJCTFBMkM2NjcxMjQyQUZFRjcwMDMwNTVFQyAvKiBTaGFyZURhdGFSZWFkZXIuY3Bw
ICovLApAQCAtMjkwODgsNiArMjkwOTgsOCBAQAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2
OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQk0NkJDQkJDMTIwODUwMDgw
MDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLywKIAkJCQk0NkJDQkJDMDIw
ODUwMDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8sCisJCQkJNDY4M0RG
M0QyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwICov
LAorCQkJCTQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlLmggKi8sCiAJCQkJOTMxQUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8qIEpTVmFsdWVJbldy
YXBwZWRPYmplY3QuaCAqLywKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5k
b3dQcm94eS5jcHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93
UHJveHkuaCAqLywKQEAgLTM1NDI4LDYgKzM1NDQwLDcgQEAKIAkJCQk1MTgyQzI1QzFGMzE0M0NE
MDA1OUJBN0MgLyogSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUYxNzUwMzFGMzU4QjNCMDBDNzQ5NTAgLyogSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlh
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUIzN0NFMUY5N0NDRDIwMEI2NTUyMyAvKiBK
U1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQw
Mjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5QzFEQzI2MjBCMDBCODBCNDggLyogSlNTaGFkb3dS
b290TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM2OTE0LDYgKzM2OTI3LDcgQEAK
IAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAvKiBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAw
RUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDU2QTdBQzgyNTZDNEY0
ODAwMkY5RERDIC8qIFNoYWRvd1Jvb3RJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5
ODFEQzI2MDMxMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4
IDUyNTEwYzMwODE4ZjBjYTkxNmE4ODQzNzdkMjI0YTFhYmE3OTViODUuLmI5YTIwZjIyOGI4MDFj
NWFkMDc3MGFjNzZlNDg1YjY0ZTVmYmNlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRl
ICJKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0u
aCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2Uu
aCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dyaXRhYmxlU3RyZWFtLmgiCkBAIC0yNjYsNiAr
MjY4LDggQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpT
RE9NV2luZG93QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KGluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIGlmIChpbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2
bSgpKSkKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJp
dHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0
PGNvbnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSgp
KSkKQEAgLTUwNiw2ICs1MTAsOCBAQCBzdGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRN
b2R1bGVMb2FkZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAg
IHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxv
YWRlcigpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93
QmFzZT4odm0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlQmFzZT4odm0pKQpAQCAtNTcwLDYgKzU3Niwy
NSBAQCBKU0M6OkpTT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRl
SW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKUwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9i
amVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZSgpKTsKIH0KIAorSlNDOjpKU0dsb2JhbE9iamVjdCogSlNET01HbG9iYWxPYmpl
Y3Q6OmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgYXV0byBkb21HbG9iYWxPYmplY3QgPSBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworCisgICAgQVNTRVJUKGRv
bUdsb2JhbE9iamVjdCk7CisgICAgYXV0byBzY29wZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OnRyeUNyZWF0ZShkb21HbG9iYWxPYmplY3QsIHNjcmlwdE1vZHVsZUxvYWRlcihkb21HbG9iYWxP
YmplY3QpKS5yZWxlYXNlTm9uTnVsbCgpOworCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlND
Ojpqc051bGwoKSk7CisgICAgYXV0byBwcm94eVN0cnVjdHVyZSA9IEpTUHJveHk6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlNDOjpqc051bGwoKSk7CisgICAgYXV0byBwcm94eSA9IEpT
UHJveHk6OmNyZWF0ZSh2bSwgcHJveHlTdHJ1Y3R1cmUpOworICAgIGF1dG8gd3JhcHBlciA9IEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoc2Nv
cGUpLCBwcm94eSk7CisKKyAgICB3cmFwcGVyLT5zZXRQcm90b3R5cGVEaXJlY3Qodm0sIHdyYXBw
ZXItPm9iamVjdFByb3RvdHlwZSgpKTsKKyAgICBwcm94eS0+c2V0VGFyZ2V0KHZtLCB3cmFwcGVy
KTsKKworICAgIHJldHVybiB3cmFwcGVyOworfQorCisKIEpTRE9NR2xvYmFsT2JqZWN0KiB0b0pT
RE9NR2xvYmFsT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCiB7CiAgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGY0ZDg2
NWQ5YTAzMjdiOGFkOTRmN2IwZGY5M2NmYzBkNTdjZThiNTguLjIyNzkyYTA5YWEwYjAxZmEwOTZi
YWJiYWMzYjU3YjhiNjlhMTZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBET01HdWFyZGVkT2Jq
ZWN0OwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogCiB1c2luZyBKU0RP
TVN0cnVjdHVyZU1hcCA9IEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRl
QmFycmllcjxKU0M6OlN0cnVjdHVyZT4+OwogdXNpbmcgRE9NR3VhcmRlZE9iamVjdFNldCA9IEhh
c2hTZXQ8RE9NR3VhcmRlZE9iamVjdCo+OwpAQCAtODYsNiArODcsNyBAQCBwdWJsaWM6CiAgICAg
SlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMmIGJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpIHsg
cmV0dXJuIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOyB9CiAKICAgICBzdGF0aWMgdm9pZCBy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGNlcHRpb24qKTsKKyAgICBzdGF0aWMgSlNDOjpKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hhZG93
UmVhbG1HbG9iYWxPYmplY3QoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAogICAg
IHZvaWQgY2xlYXJET01HdWFyZGVkT2JqZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBmODkxZTc2ZTg2NWM2YjFm
YTVjMzNiYTQ1MzhhMTI5ODY2ZjgzNDIxLi45YjJiN2VkNGYwNGFkMWUwNjQ1Zjg4YzhhMmI2ZjMy
ZjU3ZTRlMmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKQEAgLTk1LDYgKzk1LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxw
dHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9i
amVjdAogfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJv
eHkqIHByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1v
dGVET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3Rl
RE9NV2luZG93QmFzZS5jcHAKaW5kZXggYWIzZmFjNjcxMzA0ZjhjN2JjYTU5MDMwMzJlZDZjNjBi
ZGMxZmE0Yi4uYTRkNzE1ZjcwOGM2MGMwMjg2NTc5Y2YxNTkwMzU3NzAwYjdkNTRhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC01Myw2ICs1Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTUmVt
b3RlRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9CiAgICAgbnVsbHB0
ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwog
ICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVy
aXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIEpTUmVtb3RlRE9NV2luZG93QmFzZTo6
SlNSZW1vdGVET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0
cjxSZW1vdGVET01XaW5kb3c+JiYgd2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFhYjYwZmZlYjZkMmI1NDliMmZlZmRkMTNhOWNm
YzBmZWRkNzViYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgiCisKKyNp
bmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJKU01pY3JvdGFza0NhbGxiYWNrLmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHku
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlND
OworCitjb25zdCBDbGFzc0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19pbmZv
ID0geyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UpIH07CisKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CisgICAg
JnN1cHBvcnRzUmljaFNvdXJjZUluZm8sCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdCwKKyAg
ICAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywKKyAgICAmcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9v
cCwKKyAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwKKyAgICAmbW9kdWxl
TG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1
bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRp
ZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRlLAorICAgICZwcm9taXNlUmVqZWN0aW9uVHJh
Y2tlciwKKyAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKKyAgICAmY3Vy
cmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAorICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCisg
ICAgJnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwsCisgICAgW10geyByZXR1cm4gZGVmYXVs
dExhbmd1YWdlKCk7IH0sCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICZjb21waWxlU3Ry
ZWFtaW5nLAorICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKKyNlbHNlCisgICAgbnVsbHB0ciwK
KyAgICBudWxscHRyLAorI2VuZGlmCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0
LAorfTsKKworSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6SlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRy
PFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCkKKyAgICA6IEpTRE9NR2xvYmFsT2JqZWN0
KHZtLCBzdHJ1Y3R1cmUsIG5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUpCisgICAgLCBtX3dyYXBwZWQoV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkqIHBy
b3h5KQoreworICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CisgICAgbV93cmFwcGVk
LT5tX3dyYXBwZXIgPSBKU0M6OldlYWsodGhpcyk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0sIG1fcHJveHkuZ2V0KCkpOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Cit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKTsKKyAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGls
ZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0
LT5tX3Byb3h5KTsKK30KKworREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UpOworCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaW5jdWJhdGluZygpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9CisKK2NvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0KiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5n
KCkgY29uc3QKK3sKKyAgICBhdXRvIGluY3ViYXRpbmdXcmFwcGVyID0gbV93cmFwcGVkLT5tX2lu
Y3ViYXRpbmdXcmFwcGVyLmdldCgpOworICAgIEFTU0VSVChpbmN1YmF0aW5nV3JhcHBlcik7Cisg
ICAgcmV0dXJuIGluY3ViYXRpbmdXcmFwcGVyOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIHN0YXRpY19jYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKS0+SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZTo6fkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoKTsKK30KKworYm9vbCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBy
ZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zdXBwb3J0c1JpY2hTb3VyY2VJ
bmZvKG9iaik7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxk
SW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0
byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVj
dCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5zaG91bGRJbnRlcnJ1cHRTY3JpcHQob2JqKTsKK30KKworYm9vbCBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0
IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAg
ICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zaG91bGRJbnRlcnJ1cHRT
Y3JpcHRCZWZvcmVUaW1lb3V0KG9iaik7Cit9CisKK1J1bnRpbWVGbGFncyBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBvYmogPSBqc0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2Jq
LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKG9iaik7
Cit9CisKK0pTQzo6U2NyaXB0RXhlY3V0aW9uU3RhdHVzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnNjcmlwdEV4ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNPYmplY3QqIG93bmVyKQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nKCk7
CisgICAgcmV0dXJuIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2NyaXB0RXhlY3V0
aW9uU3RhdHVzKG9iaiwgb3duZXIpOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwoSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIGF1dG8gb2JqID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nKCk7CisgICAgb2JqLT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5yZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKG9iaik7
Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cXVldWVNaWNyb3Rhc2tU
b0V2ZW50TG9vcChKU0dsb2JhbE9iamVjdCYgb2JqZWN0LCBSZWY8SlNDOjpNaWNyb3Rhc2s+JiYg
dGFzaykKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKj4oJm9iamVjdCktPmluY3ViYXRpbmcoKTsKKyAgICBvYmotPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoKm9iaiwgV1RGTW92ZSh0YXNrKSk7
Cit9CisKK0pTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiByZWFsbUdsb2JhbFNj
b3BlKQoreworICAgIHJldHVybiB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHJlYWxtR2xvYmFs
U2NvcGUpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlJiByZWFsbUdsb2JhbFNjb3BlKQoreworICAgIEFTU0VSVChyZWFsbUdsb2JhbFNj
b3BlLndyYXBwZXIoKSk7CisgICAgcmV0dXJuICZyZWFsbUdsb2JhbFNjb3BlLndyYXBwZXIoKS0+
cHJveHkoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ5YzBhNjRkNmIyNmM2ZTdlYmFjMDc2ZWNhZGExY2RkOGEzNTBlYWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9N
R2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGU7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CisKK2NsYXNz
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3Qg
eworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0RPTUdsb2JhbE9iamVjdDsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRpYyB2b2lkIHN1
YnNwYWNlRm9yKEpTQzo6Vk0mKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwor
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5G
TzsKKworICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVy
biAqbV93cmFwcGVkOyB9CisKKyAgICBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGlu
ZygpIGNvbnN0OworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1YmF0aW5nKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29uc3RfY2FzdDxj
b25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPmluY3ViYXRpbmcoKSk7
CisgICAgfQorCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZTsKKworICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6UnVudGltZUZsYWdzIGph
dmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyBKU0M6OlNjcmlwdEV4ZWN1dGlvblN0YXR1cyBzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBxdWV1
ZU1pY3JvdGFza1RvRXZlbnRMb29wKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8SlNDOjpNaWNy
b3Rhc2s+JiYpOworICAgIHN0YXRpYyB2b2lkIHJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwo
SlNDOjpKU0dsb2JhbE9iamVjdCopOworCitwcm90ZWN0ZWQ6CisgICAgSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8U2hhZG93UmVh
bG1HbG9iYWxTY29wZT4mJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlND
OjpKU1Byb3h5Kik7CisKKyAgICBERUNMQVJFX1ZJU0lUX0NISUxEUkVOOworCitwcml2YXRlOgor
ICAgIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBtX3dyYXBwZWQ7Cit9OworCisvLyBS
ZXR1cm5zIGEgSlNXb3JrZXJHbG9iYWxTY29wZSBvciBqc051bGwoKQorLy8gQWx3YXlzIGlnbm9y
ZXMgdGhlIGV4ZWNTdGF0ZSBhbmQgcGFzc2VkIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9i
YWxTY29wZSBpcyBpdHNlbGYgYSBnbG9iYWxPYmplY3QgYW5kIHdpbGwgYWx3YXlzIHVzZSBpdHMg
b3duIHByb3RvdHlwZSBjaGFpbi4KK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmKTsKK2lubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlKiBzY29wZSkgeyByZXR1cm4gc2NvcGUgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KK0pTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7CitpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqc2NvcGUpIDogSlNDOjpqc051bGwoKTsgfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNTM5YWExZGMxMmFmY2ZkNGIxZWU0NmQz
ZWZkMTQ2YzNjODQwMzM0MS4uMGM1NDcyMTc0ZDJmOGQ0YjU4YzI1NTcwZjhiMzk1N2NlN2EzY2Ez
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNzAsNiArNzAsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZQogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgIGRlcml2ZVNoYWRvd1Jl
YWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDNkYzU0
OWMxMDM5NWRiOWE4NTc5YWViY2E4NTQ2ZWJlOGNjYmFhMmMuLjdmNGI5NjNjMTk4ZDc4YWFkZGRi
OTI5ZTVjMGI4MWJhMzMyZTQ3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNjYsNiArNjYsNyBAQCBj
b25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRp
ZgorICAgIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlOjpKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxXb3JrbGV0R2xvYmFsU2NvcGU+JiYgaW1wbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
CmluZGV4IGFkOTNjZTA5MDJjNTdiMDU1NDg0YmI1NDM0NDE3Mzg5MzJkNDZiYTMuLmVlM2I1Mzhk
NzkxM2RkNzY2ZjVlNmIyNjJjNzI0NzMzYjZkOGFmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oIgpAQCAtNzQsNiArNzUsMTMgQEAgU2NyaXB0TW9kdWxlTG9hZGVyOjp+U2Ny
aXB0TW9kdWxlTG9hZGVyKCkKICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogfQogCitz
dGQ6OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBTY3JpcHRNb2R1bGVMb2FkZXI6OnNo
YWRvd1JlYWxtTG9hZGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIHJlYWxtR2xvYmFsKSBjb25zdAor
eworICAgIGF1dG8gbG9hZGVyID0gV1RGOjptYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4o
bV9jb250ZXh0LCBtX293bmVyVHlwZSk7CisgICAgbG9hZGVyLT5tX3NoYWRvd1JlYWxtR2xvYmFs
ID0gcmVhbG1HbG9iYWw7CisgICAgcmV0dXJuIGxvYWRlcjsKK30KKwogc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKIHsKICAgICByZXR1cm4g
aW1wb3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVm
aW5lZCgpOwpAQCAtMjQ0LDcgKzI1Miw5IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAg
aWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVF
cnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJM
LiJfcyk7CiAKLSAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgewor
ICAgIGlmIChtX3NoYWRvd1JlYWxtR2xvYmFsKSB7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShtX3NoYWRvd1JlYWxtR2xvYmFsLCBhd2Fp
dGVkVmFsdWUsIHJlc3VtZU1vZGUpKTsKKyAgICB9IGVsc2UgaWYgKG1fb3duZXJUeXBlID09IE93
bmVyVHlwZTo6RG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1v
ZHVsZVJlY29yZCwgYXdhaXRlZFZhbHVlLCByZXN1bWVNb2RlKSk7CiAgICAgfSBlbHNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKaW5kZXgg
ZTgyYThiYjQzMzcxZWE2Y2FiOGZjZmE4NDI0ZDg3ZWIzYzk4NjMxOC4uMzljOGRkNWE1MWQwZGE5
NWYyMzc1NTliZTlmMGQzMWVlMmRjMzQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKQEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3du
ZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxlTG9hZGVyKCk7CiAKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBzaGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiByZWFsbUdsb2JhbCkgY29uc3Q7CisKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50aWZpZXIgcmVz
b2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNW
YWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAgIEhhc2hT
ZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKICAgICBPd25lclR5cGUgbV9v
d25lclR5cGU7CisgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbV9zaGFkb3dSZWFsbUdsb2JhbCB7
IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKaW5kZXggNmQ0NmIx
NTQzNTYxNjUyNDUwMTc5YjA3NDdjZGI4NzRiMmVkZWQ3MS4uNDliMDJiZjBlNzYwMzBiMDZmZDU5
YTc2ZmU1NjA1NDcxYTJmNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNSZW1vdGVET01XaW5kb3cu
aCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJH
bG9iYWxTY29wZS5oIgpAQCAtNjgsNiArNjksNyBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVu
dERhdGEoVk0mIHZtKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdyhK
U0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1JlbW90ZURPTVdpbmRvdz4oKSkKICAgICAsIG1f
aGVhcENlbGxUeXBlRm9ySlNXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6
QXJnczxKU1dvcmtlckdsb2JhbFNjb3BlPigpKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU+KCkpCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwgbV9oZWFwQ2Vs
bFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6
QXJnczxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgwMzY2YTBj
N2Y3MjIwMjNmNzkzODE0YWY2ZWE1NzExZGE5ODQ3NzcuLjM3YzlhMWU2NjRkZjg1ZmJiZGU2MzMx
NjkxMTQ4YzdjNjI2Njg3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgSlND
OjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdzsKICAg
ICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2Nv
cGU7CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlOworICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBl
Rm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFhNzJiNTRiN2FmYjMwNzljNTUwMDdhNjhj
MDg4MmMyNDJhODk1OGMuLjk3MTM1MTI3YWUxZmVkODAxMjNiYjZjZGRhZmE2ODJkYjkzNDExNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC03NjAsNyArNzYwLDcgQEAgc3ViIEdldEN1c3RvbUlzUmVhY2hhYmxlCiBzdWIg
SXNET01HbG9iYWxPYmplY3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgcmV0
dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZS0+
dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJp
dHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUi
KSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKKyAgICBy
ZXR1cm4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ciIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29w
ZSIpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUi
IHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlRlc3RHbG9iYWxPYmplY3QiOwogfQogCiBz
dWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCkBAIC03NzUsNiArNzc1LDEzIEBAIHN1
YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKICAgICByZXR1cm4gSXNET01HbG9iYWxP
YmplY3QoJGludGVyZmFjZSk7CiB9CiAKK3N1YiBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3Rv
dHlwZQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKworICAgIHJldHVybiAkaW50ZXJm
YWNlLT5pc05hbWVzcGFjZU9iamVjdCgpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUiOworfQorCiBzdWIgR2VuZXJhdGVJbmRleGVkR2V0dGVyCiB7
CiAgICAgbXkgKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW5kZXhFeHBy
ZXNzaW9uKSA9IEBfOwpAQCAtMjg3MSw3ICsyODc4LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIHByb3h5KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4i
KTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVy
ZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikg
fHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0
R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNDOjpKU1Byb3h5KiBwcm94eSlcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6
YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KHZtKSkgJHtjbGFzc05hbWV9KHZtLCBzdHJ1Y3R1cmUs
IFdURk1vdmUoaW1wbCkpO1xuIik7CkBAIC0yOTEzLDcgKzI5MjAsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwg
SlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIn0gPSAxIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciOwogICAgICAgICAKICAgICAjIFByb3RvdHlwZQotICAgIHVubGVzcyAo
U2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2Ut
PmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQ
cm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUo
JGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVj
dCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwog
ICAgIH0KQEAgLTMxNzAsNyArMzE3Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ29u
c3RydWN0b3IKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVy
ZmFjZU5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAkY2xhc3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1w
bFR5cGU+JiYsIEpTV2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8
fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRH
bG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50
ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJ
bnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwogICAgIH0gZWxzaWYgKCFOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAkY2xhc3NOYW1lKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTtcblxu
Iik7CkBAIC0zMTgwLDcgKzMxODcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3Rl
RE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTV2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xv
YmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFj
ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0lu
dGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRv
ci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpO1xuIik7
CkBAIC0zOTU5LDYgKzM5NjYsOCBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9u
YWxTdHJpbmdGb3JFeHBvc2VkCiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJX
b3JrZXIiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKSIpOworICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJT
aGFkb3dSZWFsbSIpIHsKKyAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aXNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgkZXhw
b3NlZCBlcSAiV29ya2xldCIpIHsKICAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNXb3JrbGV0R2xvYmFsU2NvcGUoKSIpOwogICAgIH0gZWxzaWYgKCRl
eHBvc2VkIGVxICJBdWRpb1dvcmtsZXQiKSB7CkBAIC00NDk4LDcgKzQ1MDcsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAkaGFzaFNpemUrKzsKICAgICB9CiAKLSAgICBp
ZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKCFTaG91bGRVc2VP
cmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkanVzdEdl
bmVyYXRlVmFsdWVBcnJheSA9ICFJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKIAogICAg
ICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhhc2hUYWJsZSgkY2xhc3NOYW1lLCAkaGFzaE5hbWUsICRo
YXNoU2l6ZSwgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNo
VmFsdWUyLCBcJWNvbmRpdGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsICRqdXN0R2Vu
ZXJhdGVWYWx1ZUFycmF5KTsKQEAgLTQ1MTEsNyArNDUyMCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KIAotICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlKCRpbnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAm
JiAhJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoUHJvdG90eXBlSGFz
U3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGlu
dGVyZmFjZSkgJiYgIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlaWZ5U3RhdGljUHJvcGVydGll
cyh2bSwgJHtjbGFzc05hbWV9OjppbmZvKCksICR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7XG4iKTsKIAogICAgICAgICBteSBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVz
ID0gQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9uczsKQEAgLTQ1OTIsNyArNDYwMSw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBhc3NlcnQoIkpTQ19UT19TVFJJTkdfVEFHX1dJ
VEhPVVRfVFJBTlNJVElPTigpIHJlcXVpcmVzIHN0cmluZ3MgdHdvIG9yIG1vcmUgY2hhcmFjdGVy
cyBsb25nIikgaWYgbGVuZ3RoKCR2aXNpYmxlSW50ZXJmYWNlTmFtZSkgPCAyOwogCi0gICAgaWYg
KCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNlT3Jk
aW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KQEAgLTQ2MjQsNyAr
NDYzMyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGlt
cGwpLCBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIp
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xl
dEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRp
bnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0
c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAg
QWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJbkltcGwoJGludGVyZmFjZU5hbWUpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGwpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHZtLCBzdHJ1
Y3R1cmUsIFdURk1vdmUoaW1wbCkpXG4iKTsKQEAgLTQ2NDUsNyArNDY1NCw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Ns
YXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNXaW5kb3dQcm94eSogcHJveHkpXG4i
KTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmICgkaW50
ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2Jh
bFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKQEAgLTQ3NDUsNyArNDc1
NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgdm0uaGVhcC5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZCh3cmFwcGVkKCkubWVtb3J5
Q29zdCgpKTtcbiIpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1JlcG9ydEV4
dHJhTWVtb3J5Q29zdH07CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCi0gICAg
dW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFBy
b3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTT2Jq
ZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnBhcmVudFR5cGUpIHsKQEAgLTc1MDcsNyArNzUx
Niw3IEBAIHN1YiBHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0aW9uCiB7CiAgICAgbXkgKCRvdXRw
dXRBcnJheSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSkgPSBAXzsKIAotICAgIHJldHVybiBpZiAk
aW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdDsKKyAgICByZXR1cm4gaWYgU2hvdWxkVXNlT3Jk
aW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSk7CiAKICAgICBteSAkcHJvdG90eXBlQ2xh
c3NOYW1lID0gIiR7Y2xhc3NOYW1lfVByb3RvdHlwZSI7CiAKQEAgLTc3ODMsNyArNzc5Miw3IEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgIGlmICghJGdlbmVyYXRp
bmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24gYW5kICRpbnRlcmZhY2UtPnBhcmVudFR5cGUpIHsKICAg
ICAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT5wYXJlbnRUeXBl
LT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7cGFyZW50
Q2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpO1xuIik7Ci0gICAg
fSBlbHNpZiAoJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB9IGVsc2lmIChT
aG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BBUkFNKHZtKTtcbiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdsb2JhbE9iamVjdC5vYmpl
Y3RQcm90b3R5cGUoKTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCA1Yjg5MzEzZmU1Y2FlZmI4OTEyZmI0MzZmMTQ3
NjgyZjA0NzU3N2JhLi43NDFhNThiMTlmMTI4ZGU0ZjA5YjFjYjU2NmNmNTFhOTFlZDdmOGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbApAQCAtNDQsNiArNDQsNyBAQCBteSAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZTsKIG15ICRj
b25zdHJ1Y3RvcnNIZWFkZXJGaWxlOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGU7CiBteSAk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOworbXkgJHNoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlOwogbXkgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKQEAgLTY1
LDcgKzY2LDggQEAgbXkgQHN1cHBvcnRlZEdsb2JhbENvbnRleHRzID0gKAogICAgICJEZWRpY2F0
ZWRXb3JrZXIiLAogICAgICJTZXJ2aWNlV29ya2VyIiwKICAgICAiUGFpbnRXb3JrbGV0IiwKLSAg
ICAiQXVkaW9Xb3JrbGV0IgorICAgICJBdWRpb1dvcmtsZXQiLAorICAgICJTaGFkb3dSZWFsbSIs
CiApOwogCiAjIFRvZ2dsZSB0aGlzIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZhc3QgcmVndWxhciBl
eHByZXNzaW9uIGJhc2VkICJwYXJzaW5nIiB1c2VkCkBAIC04Miw2ICs4NCw3IEBAIEdldE9wdGlv
bnMoJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAgICAnY29uc3RydWN0b3JzSGVh
ZGVyRmlsZT1zJyA9PiBcJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUsCiAgICAgICAgICAgICd3aW5k
b3dDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd2luZG93Q29uc3RydWN0b3JzRmlsZSwKICAgICAg
ICAgICAgJ3dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKKyAgICAgICAgICAgJ3NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGU9cycgPT4gXCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAg
ICAgICAgICAgJ3NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBc
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKQEAgLTk4LDYgKzEwMSw3
IEBAIGRpZSgnTXVzdCBzcGVjaWZ5ICNkZWZpbmUgbWFjcm9zIHVzaW5nIC0tZGVmaW5lcy4nKSB1
bmxlc3MgZGVmaW5lZCgkZGVmaW5lcyk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmls
ZSB1c2luZyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRz
dXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQg
ZmlsZSB1c2luZyAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmlu
ZWQoJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitkaWUoJ011c3Qgc3BlY2lm
eSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgk
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBz
cGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2lu
ZyAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVm
aW5lZCgkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTExMyw2
ICsxMTcsNyBAQCAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
aXNvU3Vic3BhY2VzSGVhZGVyRmlsZSk7CiAkY29uc3RydWN0b3JzSGVhZGVyRmlsZSA9IEN5Z3dp
blBhdGhJZk5lZWRlZCgkY29uc3RydWN0b3JzSGVhZGVyRmlsZSk7CiAkd2luZG93Q29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiAk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCR3
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworJHNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwpA
QCAtMTU0LDYgKzE1OSw3IEBAIG15ICVkaWN0aW9uYXJ5RGVwZW5kZW5jaWVzOwogbXkgJXN1cHBs
ZW1lbnRhbHM7CiBteSAkd2luZG93Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOworbXkgJHNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSA9ICIiOwpAQCAtMjcyLDYgKzI3OCw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChz
b3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3aW5kb3dDb25z
dHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlhc2VzIGlmICR3aW5kb3dBbGlhc2VzOwogICAgICAg
ICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIldvcmtlciIpIHsKICAgICAgICAgICAg
ICAgICAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2Rl
OworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlNoYWRvd1JlYWxtIikg
eworICAgICAgICAgICAgICAgICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0
IGVxICJEZWRpY2F0ZWRXb3JrZXIiKSB7CiAgICAgICAgICAgICAgICAgJGRlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAg
ICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTZXJ2aWNlV29ya2VyIikgewpAQCAtMzAz
LDYgKzMxMSw3IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVO
YW1lSGFzaCkgewogIyBHZW5lcmF0ZSBwYXJ0aWFsIGludGVyZmFjZXMgZm9yIENvbnN0cnVjdG9y
cy4KIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRE9NV2luZG93IiwgJHdpbmRvd0NvbnN0cnVj
dG9yc0NvZGUsICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVy
ZmFjZSgiV29ya2VyR2xvYmFsU2NvcGUiLCAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlLCAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK0dlbmVyYXRlUGFydGlh
bEludGVyZmFjZSgiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkZGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbElu
dGVyZmFjZSgiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiwgJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUiLCAkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhlZTM3ZDQxZGRiY2ZkNzNhMjNjMmE2OWRjMzNl
YThjZmJkY2RkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCkBAIC0wLDAgKzEsMjAy
IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2Ug
cHJvamVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJp
bmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQXR0
cmlidXRlLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3RJbmxpbmVzLmgiCisjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJKU0V4cG9zZWRTdGFyLmgiCisjaW5jbHVk
ZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcEFu
YWx5emVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JNYWNyb3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdWJzcGFjZUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKKworbmFt
ZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworLy8gQXR0cmlidXRlcwor
CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1H
bG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKKwordXNpbmcgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGU+OworCisvKiBIYXNoIHRhYmxlICovCisKK3N0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZUluZGV4
WzVdID0geworICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9
LAorICAgIHsgMCwgNCB9LAorICAgIHsgMSwgLTEgfSwKK307CisKKworc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlVmFsdWVzW10gPQorewor
ICAgIHsgIkV4cG9zZWRTdGFyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhw
b3NlZFN0YXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjppbmZvKCksIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlVmFsdWVzLCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
U2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IpIH07CisKK3RlbXBsYXRlPD4gSlNWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIFVOVVNFRF9QQVJBTSh2bSk7Cisg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKTsKK30KKwordGVtcGxhdGU8
PiB2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXpl
UHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7Cisg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKKyAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmlu
Zyh2bSwgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiX3MpOworICAgIG1fb3JpZ2luYWxOYW1lLnNl
dCh2bSwgdGhpcywgbmFtZVN0cmluZyk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBuYW1lU3RyaW5nLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LmdldFByb3RvdHlwZURpcmVj
dCh2bSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKTsK
K30KKworY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c19pbmZvID0g
eyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sICZKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUpIH07CisKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPiYmIGltcGwpCisgICAgOiBKU0RPTVdyYXBwZXI8U2hhZG93UmVhbG1H
bG9iYWxTY29wZT4odm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSog
cHJveHkpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsKKworICAgIHN0
YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVE
T01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0
aXZlRE9NT2JqZWN0LiIpOworCit9CisKK0pTVmFsdWUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZURPTUNvbnN0cnVjdG9yLCBET01Db25zdHJ1Y3RvcklEOjpTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkp
OworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihjZWxsKTsKKyAgICB0aGlzT2Jq
ZWN0LT5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUo
KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQor
eworICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gSlNF
eHBvc2VkU3Rhcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2hhZG93
UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3RhckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIGF0dHJpYnV0ZU5hbWUpKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPjo6Z2V0PGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3Rh
ckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRy
aWJ1dGVOYW1lKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzU2hhZG93UmVhbG1HbG9i
YWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgdGhp
c09iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAg
cmV0dXJuIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCit7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OjpnZXQ8anNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7Cit9
CisKK0pTQzo6SXNvU3Vic3BhY2UqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c3Vic3BhY2VG
b3JJbXBsKEpTQzo6Vk0mIHZtKQoreworICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsKKyAgICBhdXRvJiBzcGFjZXMgPSBj
bGllbnREYXRhLnN1YnNwYWNlcygpOworICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1
YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHNw
YWNlOworICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZSA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIGNsaWVudERh
dGEubV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUsIEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZSk7CisgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0KCk7CitJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVh
Y2hhYmxlLWNvZGUiKQorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFy
ZSIpCisgICAgdm9pZCAoKm15VmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6OkpTQ2VsbCosIEpT
Qzo6U2xvdFZpc2l0b3ImKSA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6dmlzaXRPdXRwdXRD
b25zdHJhaW50czsKKyAgICB2b2lkICgqanNDZWxsVmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6
OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKSA9IEpTQzo6SlNDZWxsOjp2aXNpdE91dHB1dENv
bnN0cmFpbnRzOworICAgIGlmIChteVZpc2l0T3V0cHV0Q29uc3RyYWludCAhPSBqc0NlbGxWaXNp
dE91dHB1dENvbnN0cmFpbnQpCisgICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29uc3RyYWludFNw
YWNlcygpLmFwcGVuZChzcGFjZSk7CitJR05PUkVfV0FSTklOR1NfRU5ECitJR05PUkVfV0FSTklO
R1NfRU5ECisgICAgcmV0dXJuIHNwYWNlOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQor
eworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Kj4oY2VsbCk7CisgICAgYW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRo
aXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKKyAgICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OworICAgIEJhc2U6OmFuYWx5emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKK30KKworYm9vbCBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBBYnN0cmFjdFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQoreworICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOworICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBj
b250ZXh0KQoreworICAgIGF1dG8qIGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZSA9IHN0YXRpY19j
YXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsK
KyAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0
KTsKKyAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzU2hhZG93UmVhbG1HbG9iYWxTY29wZS0+
d3JhcHBlZCgpLCBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOworfQorCitTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnRvV3JhcHBlZChKU0M6OlZNJiB2
bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPih2bSwgdmFsdWUpKQorICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZmUyM2YzMDgw
NDAxMzIwM2UzMWExYjQxYmVhNmQ1OTVhODcwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2Vi
S2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGU7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBKU0RPTVdy
YXBwZXI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworcHVibGljOgorICAgIHVzaW5nIEJhc2Ug
PSBKU0RPTVdyYXBwZXI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT47CisgICAgc3RhdGljIEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsLCBKU0M6OkpTUHJv
eHkqIHByb3h5KQorICAgIHsKKyAgICAgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiBwdHIg
PSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZT4odm0pKSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShp
bXBsKSk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTsKKyAgICAgICAg
cmV0dXJuIHB0cjsKKyAgICB9CisKKyAgICBzdGF0aWMgU2hhZG93UmVhbG1HbG9iYWxTY29wZSog
dG9XcmFwcGVkKEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpHbG9iYWxPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSwgSlNDOjpOb25BcnJheSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzIG1vZGU+IHN0YXRpYyBK
U0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7CisgICAgICAg
IGlmIGNvbnN0ZXhwciAobW9kZSA9PSBKU0M6OlN1YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9y
SW1wbCh2bSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZv
ckltcGwoSlNDOjpWTSYgdm0pOworICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCos
IEpTQzo6SGVhcEFuYWx5emVyJik7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4m
Jik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7Cit9
OworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lciBmaW5hbCA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CitwdWJsaWM6CisgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OkFic3RyYWN0U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOworICAgIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7Cit9
OworCitpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQmLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXI+IG93bmVyOworICAgIHJldHVybiAm
b3duZXIuZ2V0KCk7Cit9CisKK2lubGluZSB2b2lkKiB3cmFwcGVyS2V5KFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUqIHdyYXBwYWJsZU9iamVjdCkKK3sKKyAgICByZXR1cm4gd3JhcHBhYmxlT2JqZWN0
OworfQorCisKK3RlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOworICAgIHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUgPSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlKjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2U4MTJmMDQ4NjQ2NmNkOGU0ZDk3MTYyYjRjZGQzZjYzMmQyZGU4OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBAIC0wLDAgKzEsNSBAQAor
LyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRo
YXQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kCisgICAgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQK
KyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlODEyZjA0ODY0NjZj
ZDhlNGQ5NzE2MmI0Y2RkM2Y2MzJkMmRlODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmgKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0
ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8g
cmVnZW5lcmF0ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY3NmRkN2YxZmU3YTlh
Y2Q5NjllNjBjYTBlOGQ5Y2ZlYmUxNGY5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDIgQEAKK1tFeHBvc2VkPVNoYWRvd1JlYWxtXSBpbnRlcmZhY2UgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZTQ4NzEzMTZkNmEwNzM0Mjc2ZDNiNGU5NDk4Zjcw
NGY2YzVhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAgLTAsMCAr
MSw0IEBACitwYXJ0aWFsIGludGVyZmFjZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHsKKyAgICBh
dHRyaWJ1dGUgRXhwb3NlZFN0YXJDb25zdHJ1Y3RvciBFeHBvc2VkU3RhcjsKKyAgICBhdHRyaWJ1
dGUgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAppbmRleCBjMTIzMjE1MjQ2
MWE2YzJlZDJlNTQ4MGEyZTdjNmRiNjg4NGJhNDYzLi5lMzFlMGY1ODIzY2VjZGM1MGNjYmJjNGY3
ZjI2MTY3MmFjMGU3MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcApAQCAt
MjEsNiArMjEsMTAgQEAgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Lmg6IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdlYkRPTVNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgorSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsCitET01TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaWRsCitXZWJET01TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCitTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbDoKIEpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDogU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBET01TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5o
OiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdlYkRPTVNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMzUz
M2MyMGUyZWU1Nzk2MGI1NGJmZTE1MzZkZTNmYjJmOGNjYTE4Ni4uMmFhYjdiNjI1OWU3ZjEyOTNh
ODAxZjhiMzBlMjk4ZDIyZWM3Y2M2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CkBAIC0zMTIsNiArMzEzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDYWxs
ZXJzIHNob3VsZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgog
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhj
ZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJikgPSAwOworCiAgICAgYm9vbCBkaXNwYXRjaEVycm9y
RXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29s
dW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNo
ZWRTY3JpcHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGE3ZDU1OGIyYTI0NzY5MTdmNTIxMjBkZDVkNjg2Yzc3NzkwNmQyNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxT
Y29wZS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oIgorCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1
bGVMb2FkZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKTsKKworUmVmUHRyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogd3JhcHBlciwgU2NyaXB0
TW9kdWxlTG9hZGVyKiBsb2FkZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKHdyYXBwZXIsIGxvYWRlcikpOworfQorCitTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTRE9NR2xvYmFsT2JqZWN0KiB3cmFwcGVy
LCBTY3JpcHRNb2R1bGVMb2FkZXIqIGxvYWRlcikKKyAgICA6IG1faW5jdWJhdGluZ1dyYXBwZXIo
d3JhcHBlcikKKyAgICAsIG1fcGFyZW50TG9hZGVyKGxvYWRlcikKK3sgfQorCitTY3JpcHRNb2R1
bGVMb2FkZXImIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcigpCit7CisgICAg
aWYgKG1fbW9kdWxlTG9hZGVyKQorICAgICAgICByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOworCisg
ICAgYXV0byB3cmFwcGVyID0gbV93cmFwcGVyLmdldCgpOworICAgIEFTU0VSVCh3cmFwcGVyKTsK
KworICAgIG1fbW9kdWxlTG9hZGVyID0gbV9wYXJlbnRMb2FkZXItPnNoYWRvd1JlYWxtTG9hZGVy
KHdyYXBwZXIpOworICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7Cit9CisKK0pTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UqIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OndyYXBwZXIoKQorewor
ICAgIHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
On5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkgeyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDc2NWVhNDk4N2IzNGFlNTJjMmVjZTE2NTAyNDUwMzQ4MDAxNGMzOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxh
Z3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9XZWFrLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIEpTQyB7IGNsYXNzIFZNOyB9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTsKK2NsYXNzIEpTRE9NR2xv
YmFsT2JqZWN0OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKKyAgICBmcmllbmQgY2xhc3MgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUpOworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlPiB0cnlDcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBTY3JpcHRNb2R1
bGVMb2FkZXIqKTsKKyAgICB+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworCisgICAgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSYgc2VsZigpIHsgcmV0dXJuICp0aGlzOyB9CisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKTsKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlKiB3cmFwcGVyKCk7CisKK3Byb3RlY3RlZDoKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KEpTRE9NR2xvYmFsT2JqZWN0KiwgU2NyaXB0TW9kdWxlTG9hZGVyKik7CisKK3ByaXZhdGU6Cisg
ICAgSlNDOjpXZWFrPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2luY3ViYXRpbmdXcmFwcGVyOworICAg
IFNjcmlwdE1vZHVsZUxvYWRlciogbV9wYXJlbnRMb2FkZXI7CisgICAgSlNDOjpXZWFrPEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+IG1fd3JhcHBlciB7IH07CisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXIgeyB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNmZkNGMzODVkZjZhOTEzMWIzN2FiOTgyOTEwNmEz
MmRmYzAwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKK1sKKyAgICBFeHBvc2VkPVNoYWRvd1JlYWxt
LAorICAgIEpTTGVnYWN5UGFyZW50PUpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UsCisgICAg
R2xvYmFsPVNoYWRvd1JlYWxtLAorICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAorXSBpbnRl
cmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlIHNlbGY7Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhlMTQ1NzBjYTEwYWI1OGQwMDFlMzM5NzZkNzBjNTVl
YWE0ODRhN2IuLjZkMTIwMjdkMzc1MjBiZWIyYjYyMmFiOTVkY2JlZTg2OTVhNWFkOWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNo
YWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAg
ICAgIChCaW5kaW5nc1Rlc3RzLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAg
ICAgICAgKEJpbmRpbmdzVGVzdHMubWFpbik6CisKIDIwMjEtMTItMDggIEJKIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEg
d2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3
aGVuIGFuIGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKaW5kZXggMDIyZDA5ZTg2OTMxMWYwMDQ0MzQwOTY5Y2EzNDk4NWNiNzIwZWE1
Ny4uY2U4YjUwNjMxMGYxOTdkMjUzYTViNTE4NTlmMTdkNmUzMTlkNWE3YiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBCaW5k
aW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAg
cmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAg
IGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3Rv
cnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9k
ZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2
aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1w
KCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJlY3Rvcnkp
OgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0
X2ZpbGUpCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAg
ICAgICAnLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVf
ZGVwZW5kZW5jeV9maWxlLAogICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3RydWN0b3JzRmls
ZScsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLAorICAgICAgICAgICAgICAgJy0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUnLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAg
ICAgICAgICAgICAgJy0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
JywgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAg
ICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAg
Jy0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhcmVkd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCkBAIC0xOTksNiArMjAwLDcgQEAgY2xhc3Mg
QmluZGluZ3NUZXN0czoKICAgICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lf
ZmlsZW5hbWUgPSAnU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCcKICAgICAgICAgZG9tX3dp
bmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCcK
ICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAgICAgc2hhZG93cmVhbG1nbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSA9ICdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwnCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5h
bWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAg
c2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKQEAgLTIxMyw2ICsyMTUsNyBAQCBjbGFz
cyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5j
eV9maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jl
c3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRl
bmN5X2ZpbGVuYW1lKQogICAgICAgICB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGly
ZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgc2hhZG93cmVh
bG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVj
dG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzaGFk
b3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29y
a19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9y
eSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAg
ICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFt
ZSkKICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lKQpAQCAtMjIxLDcgKzIyNCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2lu
KHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJl
Y3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAg
ICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rv
cnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYg
c2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1
cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRl
bmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5
X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRv
d3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgICAg
IHByaW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxl
LicpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAgICAgICAg
ICAgcmV0dXJuIC0xCkBAIC0yMzMsNiArMjM2LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAg
ICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNl
bGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5w
dXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgog
ICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAgICAgaWYg
c2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBp
bnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVu
YW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAg
ICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVj
dG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxz
ZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScs
IHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIxMGE1Y2UxZThiMDM2NGUwNmE0NmMz
ZDQzOWNhNWQwOTNmMWY5OTMuLmRjODNlMGFkOTllMGFmNjdiNDFjMDJmN2I3YTJmYTc2OGQwNmU4
NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0xMi0xMCAgSm9zZXBoIEdyaWVnbyAgPGpn
cmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUg
bW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgSW1w
cm92ZSB0ZXN0IGNvdmVyYWdlIGEgYml0IGZvciBzaGFkb3cgcmVhbG1zLCBlc3BlY2lhbGx5IHJ1
bm5pbmcgbmVzdGVkIG9yIGluIHdvcmtlciBjb250ZXh0cy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGFzc2VydF9jbG9zZWRfb3BlbmVyKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0
KToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanM6
IEFkZGVkLgorICAgICAgICAod3JhcHBlZExvZyk6CisgICAgICAgIChwcm9taXNlX3Rlc3QuYXN5
bmMgdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9kdWxlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGNoZWNrKToKKyAgICAgICAgKGxvZ19lcXVhbCk6CisgICAgICAgIChjaGVj
a19uZXN0ZWQpOgorICAgICAgICAoc2V0VmFsdWUpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydF9lcXVhbHMp
OgorICAgICAgICAoYXN5bmMgdGVzdCk6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisKIDIwMjEt
MTItMDkgIE1hdHQgV29vZHJvdyAgPG1hdHQud29vZHJvd0BnbWFpbC5jb20+CiAKICAgICAgICAg
VW5wcmVmaXggLXdlYmtpdC1tYXNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dS
ZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY5ODA0OTczZmRlYWFjY2ZiNGRhMzNi
NjNmZGI5MzgyNWNmNzUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdG8gZW5z
dXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIHdpbmRvdy5jbG9zZSgpIGFm
ZmVjdHMgbmFtZSB0YXJnZXRpbmcgaW1tZWRpYXRlbHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWV2YWx1YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk5NDcxNDU3OWU3ZTg1NjAzNTdlZGMyNTU4
MmRmN2E4NDkwZjAxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1Jl
YWxtLWV2YWx1YXRlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0
aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2
aW91ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuZXZhbHVhdGUiKTsKKworICAgIGZ1bmN0aW9u
IGFzc2VydF9jbG9zZWRfb3BlbmVyKHcsIGNsb3NlZCwgb3BlbmVyKSB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMody5jbG9zZWQsIGNsb3NlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMody5vcGVu
ZXIsIG9wZW5lcik7CisgICAgfQorCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAg
ICAgICBjb25zdCBvcGVuZWUgPSB3aW5kb3cub3BlbigiIiwgImdyZWF0bmFtZSIpOworICAgICAg
ICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisKKyAgICAgICAg
Ly8gc2V0dXAgcmVhbG0gbmVzdGVkIGluIG91dGVyU2hhZG93UmVhbG0KKyAgICAgICAgb3V0ZXJT
aGFkb3dSZWFsbS5ldmFsdWF0ZSgidmFyIGlubmVyUmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsi
KTsKKyAgICAgICAgb3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgidmFyIGNhbGxJbklubmVyID0g
aW5uZXJSZWFsbS5ldmFsdWF0ZShcIihjYikgPT4gY2IoKVwiKTsiKTsKKworICAgICAgICBjb25z
dCBjYWxsSW5OZXN0ZWRSZWFsbSA9IG91dGVyU2hhZG93UmVhbG0uZXZhbHVhdGUoIihjYikgPT4g
Y2FsbEluSW5uZXIoY2IpIik7CisKKyAgICAgICAgLy8gY2FsbCBjbG9zZSB3aW5kb3cgdHdvIGxl
dmVscyBkZWVwCisgICAgICAgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9wZW5lZSwgZmFsc2UsIHNl
bGYpOworICAgICAgICBjYWxsSW5OZXN0ZWRSZWFsbSgoKSA9PiBvcGVuZWUuY2xvc2UoKSk7Cisg
ICAgICAgIC8vIG9wZW5lZS5jbG9zZSgpCisgICAgICAgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9w
ZW5lZSwgdHJ1ZSwgc2VsZik7CisgICAgfSwgIndpbmRvdy5jbG9zZSgpIGFmZmVjdHMgbmFtZSB0
YXJnZXRpbmcgaW1tZWRpYXRlbHkiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg2MTRjNTU1YTgwOGI3YjJmZmI3ZmM2MTc5ZjcwNzQ3NDg1NzliMmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiA0MgorVGVzdCB0
byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmltcG9y
dFZhbHVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitzaGFkb3dSZWFsbTogY2Fs
bGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBlciB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworc2hhZG93
UmVhbG06IG5lc3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCisKK1BBU1Mg
Y2FuIGltcG9ydCBtb2R1bGUgaW4gYSBzaGFkb3cgcmVhbG0KK1BBU1MgY2FuIG5lc3QgcmVhbG1z
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA3YThjNjUzMDI3M2MzMzMzYzVlYTAxODk5YzUyMzY2ZDFkNDM0OWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sCkBAIC0w
LDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10
cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJv
dG90eXBlLmltcG9ydFZhbHVlIik7CisKKyAgICBmdW5jdGlvbiB3cmFwcGVkTG9nKHByZWZpeCkg
eworICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAgICAgICAgZGVidWcocHJl
Zml4ICsgIjogIiArIG1zZyk7CisgICAgICAgIH07CisgICAgfQorCisgICAgY29uc3QgbW9kdWxl
X3BhdGggPSAiLi9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMiOworCisgICAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93
UmVhbG0oKTsKKyAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBv
cnRWYWx1ZShtb2R1bGVfcGF0aCwgImNoZWNrIik7CisgICAgYXNzZXJ0X2VxdWFscyhjaGVja0Zu
KHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICAgIGNvbnN0IG91ck1vZHVs
ZSA9IGF3YWl0IGltcG9ydChtb2R1bGVfcGF0aCk7CisgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1
bGUudmFsdWUsIHRydWUsICJibG9vcCIpOworICAgIG91ck1vZHVsZS5zZXRWYWx1ZSg0Mik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKworICAgIGNvbnN0IGltcG9y
dGVkVmFsID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwg
InZhbHVlIik7CisgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbCwgdHJ1ZSk7CisgICAgY29u
c3Qgc2V0VmFsdWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUo
bW9kdWxlX3BhdGgsICJzZXRWYWx1ZSIpOworICAgIHNldFZhbHVlSW1wb3J0ZWQoMTAwKTsKKyAg
ICBjb25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVl
KG1vZHVsZV9wYXRoLCAidmFsdWUiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsMiwg
MTAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIpOworICAgIH0sICJj
YW4gaW1wb3J0IG1vZHVsZSBpbiBhIHNoYWRvdyByZWFsbSIpOworCisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRv
d1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxt
LmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAiY2hlY2tfbmVzdGVkIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisgICAg
fSwgImNhbiBuZXN0IHJlYWxtcyIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MmY0NDkxOWIwM2E4MjRmMTY2NDUwZThiZjc3MThjNzM5NDUxMDE0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQSXMgYXJlIGF2YWls
YWJsZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRzCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9zaGFkb3ct
cmVhbG0td29ya2VyLmpzCitQQVNTIFtXb3JrZXJdIGltcG9ydC12YWx1ZQorW1dvcmtlcl0gc2hh
ZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBjb3JyZWN0IGdsb2Jh
bDogT0sKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZhbCB1c2VzIGNvcnJl
Y3QgZ2xvYmFsOiBPSworUEFTUyBbV29ya2VyXSBuZXN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdv
cmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyODExOTg1NjkyZGQ5OTVlNzYyZWE2MTM4MTk3MmRiZTg2
ZmIzNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3Jr
ZXIuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNl
U2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQSXMgYXJlIGF2YWlsYWJsZSBhbmQgd29yayBw
cm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRzIik7CisgICAgICAgICBjb25zdCB3b3JrZXIg
PSBzdGFydFdvcmtlcigicmVzb3VyY2VzL3NoYWRvdy1yZWFsbS13b3JrZXIuanMiKTsKKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMgYi9MYXlv
dXRUZXN0cy9qcy9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMyZWJj
N2E1MDMwZWQ4MDQwMTAzMmIwODM5NTI5MzQ5ZTUyOGJlNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3Jlc291cmNlcy9leGFtcGxlLW1vZHVsZS5qcwpAQCAtMCwwICsxLDMyIEBA
Cit2YXIgdmFsdWUgPSB0cnVlOworCit2YXIgY2hlY2sgPSBmdW5jdGlvbihsb2cpIHsKKyAgICBp
ZiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpICE9PSBPYmplY3QucHJvdG90eXBl
KSB7CisgICAgICAgIGxvZygiZ2xvYmFsVGhpcyBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlw
ZSIpOworICAgICAgICBsb2coT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpLnRvU3Ry
aW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCitmdW5jdGlvbiBsb2dfZXF1YWwobG9nLCBtc2csIHgsIHkpIHsKKyAgICBjb25zdCByZXN1
bHQgPSB4ID09IHk7CisgICAgbG9nKGAke21zZ306ICR7cmVzdWx0ID8gJ09LJyA6ICdGQUlMRUQn
fWApOworfQorCit2YXIgY2hlY2tfbmVzdGVkID0gZnVuY3Rpb24obG9nKSB7CisgICAgY29uc3Qg
c3IgPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICBnbG9iYWxUaGlzLnggPSAxMDA7CisgICAgc3Iu
ZXZhbHVhdGUoYGdsb2JhbFRoaXMueCA9IDQyYCk7CisgICAgY29uc3QgZiA9IHNyLmV2YWx1YXRl
KGAoKSA9PiB7cmV0dXJuIGdsb2JhbFRoaXMueDt9YCk7CisgICAgbG9nX2VxdWFsKGxvZywgImNh
bGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBmKCkp
OworICAgIGxvZ19lcXVhbChsb2csICJuZXN0ZWQgcmVhbG0gZXZhbCB1c2VzIGNvcnJlY3QgZ2xv
YmFsIiwgNDIsIHNyLmV2YWx1YXRlKGBnbG9iYWxUaGlzLnhgKSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZhciBzZXRWYWx1ZSA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkgeworICAgIGNvbnNvbGUu
bG9nKG5ld1ZhbHVlKTsKKyAgICB2YWx1ZSA9IG5ld1ZhbHVlOworfQorCitleHBvcnQgeyB2YWx1
ZSwgc2V0VmFsdWUsIGNoZWNrLCBjaGVja19uZXN0ZWQgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvanMv
cmVzb3VyY2VzL3NoYWRvdy1yZWFsbS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWExM2U1MGUxYWQx
YzFjNDNjMjdhMDEwMDNkZjk5ZTRkZjQ3ZTM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCkBAIC0wLDAgKzEsNTEgQEAK
K2ltcG9ydFNjcmlwdHMoIi4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyIpOworCitmdW5j
dGlvbiBhc3NlcnRfZXF1YWxzKHgsIHkpIHsKKyAgICBpZiAoeCA9PT0geSkgcmV0dXJuOworICAg
IHRocm93IG5ldyBFcnJvcihgYXNzZXJ0aW9uIGZhaWx1cmU6IGV4cGVjdGVkICR7eH0sIGdvdCAk
e3l9YCk7Cit9CisKK2Z1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgcmV0dXJuIGZ1
bmN0aW9uIChtc2cpIHsKKyAgICAgICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAg
fTsKK30KKworCithc3luYyBmdW5jdGlvbiB0ZXN0KGtleSwgZikgeworICAgIHRyeSB7CisgICAg
ICAgIGF3YWl0IGYoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoa2V5
ICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0UGFzc2Vk
KGtleSk7Cit9CisKKyhhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgYXdhaXQgdGVzdCgiaW1wb3J0
LXZhbHVlIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0g
bmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNo
YWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwg
dHJ1ZSk7CisKKyAgICAgICAgY29uc3Qgb3VyTW9kdWxlID0gYXdhaXQgaW1wb3J0KCIuL2V4YW1w
bGUtbW9kdWxlLmpzIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCB0
cnVlLCAiYmxvb3AiKTsKKyAgICAgICAgb3VyTW9kdWxlLnNldFZhbHVlKDQyKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKworICAgICAgICBjb25zdCBpbXBv
cnRlZFZhbCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1t
b2R1bGUuanMiLCAidmFsdWUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbCwg
dHJ1ZSk7CisgICAgICAgIGNvbnN0IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRlclNoYWRv
d1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInNldFZhbHVlIik7Cisg
ICAgICAgIHNldFZhbHVlSW1wb3J0ZWQoMTAwKTsKKyAgICAgICAgY29uc3QgaW1wb3J0ZWRWYWwy
ID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5q
cyIsICJ2YWx1ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsMiwgMTAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKyAgICB9KTsKKwor
ICAgIGF3YWl0IHRlc3QoIm5lc3RlZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgb3V0
ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICBjb25zdCBjaGVja0Zu
ID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5q
cyIsICJjaGVja19uZXN0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjaGVja0ZuKHdyYXBw
ZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKyAgICB9KTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448861</attachid>
            <date>2022-01-11 11:15:07 -0800</date>
            <delta_ts>2022-01-21 10:00:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20220111141506.patch</filename>
            <type>text/plain</type>
            <size>118427</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjI5MWU1YzA4NGJkMWI0ZDg2YTI0YjkxNTg0NjEwMmZlNTE3NTQ2Li4xYzkzYmVjM2IzMmNjYjM1
NTZjZTc0ZWY5YjU4MTAwYTE0ODIyYzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0wMS0xMSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMi0wMS0xMCAgRWxsaW90dCBXaWxs
aWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgcG9zdHByb2Nlc3MtaGVhZGVycy5zaDog
QXZvaWQgcmVkdW5kYW50IHByb2Nlc3NpbmcgdG8gc3BlZWQgdXAgaW5jcmVtZW50YWwgWGNvZGUg
YnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ4MzUyOWE5NWQxNDg4ZWE2NWJkMDgwYTFiYzYwMTA1Mjg5
N2UxOS4uNzhlY2JhYWIzZjg5YWQxOWI2ZGNmODY5ZDA4ZGYzOTM2MTYwNWQ2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDkxIEBACisyMDIxLTAxLTExICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUg
bG9hZGVycyBmb3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbnRyb2R1Y2Vz
IGEgbmV3IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgdGhhdCBzZXJ2ZXMgYXMgdGhlCisgICAgICAg
IGltcGxlbWVudGF0aW9uIG9mIGEgZ2xvYmFsIG9iamVjdCBmb3IgY29kZSBydW5uaW5nIGluIGEg
c2hhZG93IHJlYWxtLS10bworICAgICAgICBpbXBsZW1lbnQgdGhlIHJlcXVpcmVtZW50cyBvZiBK
UyhET00pR2xvYmFsT2JqZWN0LCBpdCBzaW1wbHkgZGVsZWdhdGVzCisgICAgICAgIGFsbCBtZXRo
b2RzIHRvIHRoZSBpbmN1YmF0aW5nIChlbmNsb3NpbmcpIHJlYWxtLCB3aXRoIHRoZSBleGNlcHRp
b24gb2YKKyAgICAgICAgbWV0aG9kcyByZWxhdGVkIHRvIG1vZHVsZSBsb2FkaW5nLCBmb3Igd2hp
Y2ggaXQgdXNlcyBhIGN1c3RvbQorICAgICAgICBTY3JpcHRNb2R1bGVMb2FkZXIgY29uZmlndXJl
ZCB0byB1c2UgdGhlIGFwcHJvcHJpYXRlIGdsb2JhbCBvYmplY3Qgd2hlbgorICAgICAgICBldmFs
dWF0aW5nIG1vZHVsZSBjb2RlLgorCisgICAgICAgIEFsc28gcmVxdWlyZXMgc29tZSBhZGp1c3Rt
ZW50IHRvIHRoZSBJREwtZHJpdmVuIGNvZGUgZ2VuZXJhdGlvbi0tdGhlCisgICAgICAgIGN1cnJl
bnQgZHJhZnQgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSBnbG9iYWwgb2JqZWN0IGZvciB0aGUgc2hh
ZG93IHJlYWxtCisgICAgICAgIGJlIGFuIG9yZGluYXJ5IG9iamVjdC0tU2hhZG93UmVhbG1HbG9i
YWxTY29wZSBpcyBvcHRlZCBvdXQgb2YgY29kZWdlbgorICAgICAgICBmb3IgcHJvZHVjaW5nIGEg
Y3VzdG9tIHByb3RvdHlwZSwgYnV0IGNhbiBzdGlsbCBoYXZlIEFQSXMgaW5jbHVkZWQgYXMKKyAg
ICAgICAgcHJvcGVydGllcyBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgYEV4cG9zZWQ9U2hhZG93UmVh
bG1gIG9yIGBFeHBvc2VkPSpgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHM6IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L1NoYWRvd1JlYWxtLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NR2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTUdsb2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURP
TVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2U6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGls
ZHJlbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjppbmN1YmF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNl
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpz
aG91bGRJbnRlcnJ1cHRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZhU2NyaXB0UnVu
dGltZUZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6OnNjcmlwdEV4ZWN1dGlvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnF1ZXVlTWljcm90YXNr
VG9FdmVudExvb3ApOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1YnNwYWNlRm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OndyYXBwZWQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpzaGFk
b3dSZWFsbUxvYWRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICog
YmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoSXNET01HbG9iYWxPYmplY3QpOgor
ICAgICAgICAoU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxT
dHJpbmdGb3JFeHBvc2VkKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAg
ICAgICAoR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNv
bnN0cnVjdG9ySGVscGVyTWV0aG9kcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVw
cm9jZXNzLWlkbHMucGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAgKiBk
b20vUHJvbWlzZVJlamVjdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
aXNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xv
YmFsU2NvcGU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93UmVhbG1HbG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1JlYWxtR2xvYmFsU2NvcGU6OndyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
UmVhbG1HbG9iYWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHBh
Z2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93UmVhbG1HbG9iYWxTY29wZTo6c2VsZik6CisgICAgICAgICogcGFnZS9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlLmlkbDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2hhZG93UmVhbG1PYmplY3QuaC4KKwogMjAyMi0wMS0xMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDb2xvciA0XSBDU1MgY29sb3IoKSBmdW5jdGlvbiBz
aG91bGQgbm90IGNsYW1wIGNoYW5uZWxzIHRvIHRoZSAwLTEgcmFuZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKaW5kZXggOTc4ZjI3M2RmOGFm
YTc4MDkzOGQ1ZDRmN2QwYTY2ZDY4OGY1YzQxNC4uM2RjZWE2Y2EyNmUyOGJkZTM4ZjRiNjkzOTQ2
ZWUyOTIwMzA3YTRkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQ
SUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUds
b2JhbE9iamVjdC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAg
ICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0
cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0
ciwgLy8gZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QKIH07CiAKIHZvaWQgSlNBUElHbG9i
YWxPYmplY3Q6OnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9uKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQppbmRleCAzZmI3Nzg0ZWM1N2QxNjRk
NWM2Nzc3MDE5ZWZjMzJmZDhlZjJiNWY1Li42NTM4ZDMzNmM4ODk0MWUxMzc3ZGVjMGRhOGU0ZmJk
NzE5N2Q2NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xv
YmFsT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxP
YmplY3QubW0KQEAgLTcxLDYgKzcxLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNBUElHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVs
bHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWlu
ZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRv
d1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogdm9pZCBKU0FQSUdsb2JhbE9iamVjdDo6cmVwb3J0
VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggOGY4YzVmMzY5
ZDZlYTUyMDg4MTc4YjdjYzg1YjcyNDc1MTQ3NGNhZi4uZGYxODBmYmFkMWM3OTFlYzczY2Y2Yjlj
YTNmNGI0NDI4YzQ2YmE4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc1OCw2ICs3NTgsNyBA
QCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAg
bnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpbmF0
ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogR2xv
YmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCAyODY0YTE5NWY1NDJlMDk0MzZhZmY3ODMxMWM0OTZiNTM1MDIxMzdhLi42ZWQ4ZDIwYjBkM2Q3
OGJjZGQxN2U0MGVhYjA3MTk4YmFhMGI4MGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC01MzcsNiArNTM3LDcgQEAgY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0
ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFt
aW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiAvKiBTb3VyY2Ug
Zm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAwM2VhM2E2YzMxNjllNTdlZGY3NzAxMWNiMDhiMjYx
OGEwNTBmOTk0Li5hNTkyY2ZjODQyMTdiZmZmZGFjYjFiZjVmZDRhZGE0YTNlNGFjNTVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI2
NCw2ICsyNjQsOSBAQCBzdHJ1Y3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgewogCiAgICAgdHlw
ZWRlZiBKU1Byb21pc2UqICgqSW5zdGFudGlhdGVTdHJlYW1pbmdQdHIpKEpTR2xvYmFsT2JqZWN0
KiwgSlNWYWx1ZSwgSlNPYmplY3QqKTsKICAgICBJbnN0YW50aWF0ZVN0cmVhbWluZ1B0ciBpbnN0
YW50aWF0ZVN0cmVhbWluZzsKKworICAgIHR5cGVkZWYgSlNHbG9iYWxPYmplY3QqICgqRGVyaXZl
U2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0cikoVk0mLCBKU0dsb2JhbE9iamVjdCopOworICAg
IERlcml2ZVNoYWRvd1JlYWxtR2xvYmFsRnVuY3Rpb25QdHIgZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3Q7CiB9OwogCiBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0IHsKQEAgLTEwNzQsNiArMTA3NywxMSBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kikg
eyByZXR1cm4gdHJ1ZTsgfQogCisgICAgc3RhdGljIEpTR2xvYmFsT2JqZWN0KiBkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CisgICAgeworICAgICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21N
ZXRob2RUYWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxs
KCkpLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIH0KKwog
ICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVj
dCopIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3Jp
cHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBzdGF0aWMgUnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNH
bG9iYWxPYmplY3QqKSB7IHJldHVybiBSdW50aW1lRmxhZ3MoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApp
bmRleCAxNmU4YWFjM2RhZjMxY2FiZjZiMTg5ZWFkMWIzMzE2YzRhYzE1N2Y3Li5jODg2YmFjMDYz
YjQyYzY3MmYyZmVjOTUxODFmMTAxN2I2NmFmMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApAQCAtNTMs
NyArNTMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aFNoYWRvd1Jl
YWxtQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZwogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBTdHJ1Y3R1cmUqIHNoYWRvd1JlYWxtU3RydWN0dXJlID0gU2hh
ZG93UmVhbG1PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnNoYWRvd1JlYWxtUHJvdG90eXBlKCkpOwotICAgIEpTT2JqZWN0KiBzaGFkb3dSZWFs
bU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNoYWRvd1JlYWxtU3RydWN0
dXJlLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIEpTT2Jq
ZWN0KiBzaGFkb3dSZWFsbU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNo
YWRvd1JlYWxtU3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoc2hhZG93UmVhbG1PYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKaW5kZXggYTI1YTQwMDgwOTMwMDgx
ZjAwOGU2M2UxMTY5ZGNmNzdlNzQzOGZjOC4uMWI3YmU5ZGE3MTdkNTc2MTBmNmViYzkyMjA1NDk1
MGRiYjg4NDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hh
ZG93UmVhbG1PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIHZvaWQgU2hhZG93UmVhbG1P
YmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikK
IAogREVGSU5FX1ZJU0lUX0NISUxEUkVOKFNoYWRvd1JlYWxtT2JqZWN0KTsKIAotU2hhZG93UmVh
bG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKQorU2hh
ZG93UmVhbG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBTaGFk
b3dSZWFsbU9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U2hhZG93
UmVhbG1PYmplY3Q+KHZtKSkgU2hhZG93UmVhbG1PYmplY3Qodm0sIHN0cnVjdHVyZSk7CiAgICAg
b2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUodm0sIEpT
R2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgbWV0aG9kVGFibGUp
OwotICAgIG9iamVjdC0+bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIGdsb2JhbE9iamVj
dCk7CisgICAgSlNHbG9iYWxPYmplY3QqIHNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0ID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZXJpdmVTaGFkb3dSZWFsbUdsb2Jh
bE9iamVjdCh2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBvYmplY3QtPm1fZ2xvYmFsT2JqZWN0LnNl
dCh2bSwgb2JqZWN0LCBzaGFkb3dSZWFsbUdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIG9iamVj
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93
UmVhbG1PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxt
T2JqZWN0LmgKaW5kZXggZDA4OGZmNzg0MmUyMGFlNTQyNTJmNmRiMDVkNGM3ZTg0ZjllYjE1Yy4u
YWRiMmVkMDIyYTM3MGM0MDM5MjQ5MzdiNWFhN2I1M2I5OGYyN2Y0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAotICAgIHN0YXRpYyBTaGFkb3dS
ZWFsbU9iamVjdCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgY29uc3QgR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUqKTsKKyAgICBzdGF0aWMgU2hhZG93UmVhbG1PYmplY3QqIGNyZWF0ZShWTSYsIFN0
cnVjdHVyZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KCkgeyByZXR1cm4gbV9nbG9iYWxPYmplY3QuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA0OWMwMTAxNmNmMzg3ZDI0OGYxNGIxMTQwYzI4NGNjMDI0ZGU0ZmQ3Li42MWFh
ZTNiMzhmNDNhOGI4MzVjY2I3MzM2YTIyZjFlY2M3NzMwNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTIxMCw2ICsxMjEwLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAg
ICBwYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwKICAgICBwYWdlL1Njcm9sbE9wdGlvbnMu
aWRsCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsCisgICAgcGFnZS9TaGFkb3dSZWFsbUds
b2JhbFNjb3BlLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRhLmlkbAogICAgIHBhZ2UvU3RydWN0dXJl
ZFNlcmlhbGl6ZU9wdGlvbnMuaWRsCiAgICAgcGFnZS9VbmRvSXRlbS5pZGwKQEAgLTIwOTAsNiAr
MjA5MSw3IEBAIHNldChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFICR7V2ViQ29yZV9ERVJJVkVE
X1NPVVJDRVNfRElSfS9ET01Jc29TdWJzcGFjZXMuaCkKIHNldChDT05TVFJVQ1RPUlNfSEVBREVS
X0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RPTUNvbnN0cnVjdG9ycy5oKQog
c2V0KFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCkKIHNldChXT1JLRVJHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KFNIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFNIQVJFRFdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCkBAIC0yMjc0
LDEyICsyMjc2LDEzIEBAIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5ncwogICAgIEdF
TkVSQVRPUiBKUwogICAgIFNVUFBMRU1FTlRBTF9ERVBGSUxFICR7U1VQUExFTUVOVEFMX0RFUEVO
REVOQ1lfRklMRX0KICAgICBQUF9FWFRSQV9PVVRQVVQKLSAgICAgICAgJHtJU09fU1VCU1BBQ0VT
X0hFQURFUl9GSUxFfSAke0NPTlNUUlVDVE9SU19IRUFERVJfRklMRX0gJHtXSU5ET1dfQ09OU1RS
VUNUT1JTX0ZJTEV9ICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9ICR7REVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgJHtJU09fU1VC
U1BBQ0VTX0hFQURFUl9GSUxFfSAke0NPTlNUUlVDVE9SU19IRUFERVJfRklMRX0gJHtXSU5ET1df
Q09OU1RSVUNUT1JTX0ZJTEV9ICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9
ICR7U0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtERURJQ0FURURX
T1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICBQUF9FWFRSQV9BUkdTCiAg
ICAgICAgIC0taXNvU3Vic3BhY2VzSGVhZGVyRmlsZSAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJ
TEV9CiAgICAgICAgIC0tY29uc3RydWN0b3JzSGVhZGVyRmlsZSAke0NPTlNUUlVDVE9SU19IRUFE
RVJfRklMRX0KICAgICAgICAgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlICR7V0lORE9XX0NPTlNU
UlVDVE9SU19GSUxFfQogICAgICAgICAtLXdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAke1dPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICAgICAtLXNoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0hBRE9XUkVBTE1HTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRX0KICAgICAgICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICR7U0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAg
ICAtLXNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1NIQVJFRFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZDZjYWMwYjRhYTVhMTJjMmYyYjJjYWU3
NTBiOTUyZjZkZTlmMzgyOC4uOTMxNmNiZjBkNDQ3MWY4ODZhM2RhNjVlMzMyZTQ2OWVmY2Q0Mzc4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0xNDI5LDYgKzE0MjksNyBAQCAkKFBST0pFQ1RfRElSKS9wYWdlL1Njcm9sbExvZ2ljYWxQ
b3NpdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICQoUFJP
SkVDVF9ESVIpL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9T
ZXR0aW5ncy55YW1sCiskKFBST0pFQ1RfRElSKS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1NoYXJlRGF0YS5pZGwKICQoUFJPSkVDVF9ESVIpL3Bh
Z2UvU3RydWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1Vu
ZG9JdGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCBlODI0N2I3OGYyYzEyNmFhZWFhZjZkMTYxZGIwODI5MzE2YzNkZGE5Li5i
YmIxYThhZDM0MjA1MmYzOGUxYTM2ZWE4MTU3YjBkNGIxNTdkZGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjQ3NSw2ICsyNDc1
LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTZXJ2
aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U2hhZG93Um9vdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU2hhZG93Um9vdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NoYWRvd1Jvb3RJbml0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNDlhZGJjMjQzNjBiMTY5ZWNhMWUzMjMzNjAyMzUwOTY0NTkzYWU2Mi4uZmRlZWI1Njlj
NDY5M2ZiYWMxYzU4NzE5YzM0MWJkOGExZThjZDNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0xMjU5LDYgKzEyNTksNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQo
V2ViQ29yZSkvcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxUb09w
dGlvbnMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFyZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvU3RydWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvVW5kb0l0ZW0uaWRsIFwKQEAgLTIwODAsNiArMjA4MSw3IEBAIElTT19TVUJTUEFDRVNfSEVB
REVSX0ZJTEUgPSBET01Jc29TdWJzcGFjZXMuaAogQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFID0g
RE9NQ29uc3RydWN0b3JzLmgKIFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSA9IERPTVdpbmRvd0Nv
bnN0cnVjdG9ycy5pZGwKIFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCitTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwK
IERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBTRVJWSUNFV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBTSEFSRURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFNoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMjA5NSw2ICsyMDk3LDcgQEAg
SURMX0lOVEVSTUVESUFURV9GSUxFUyA9IFwKICAgICAkKENPTlNUUlVDVE9SU19IRUFERVJfRklM
RSkgXAogICAgICQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAorICAgICQoU0hBRE9XUkVBTE1HTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSBcCkBAIC0yMTA1LDcgKzIxMDgsNyBAQCBJRExfSU5URVJNRURJQVRFX1BBVFRFUk5TID0g
JChzdWJzdCAuLCUsJChJRExfSU5URVJNRURJQVRFX0ZJTEVTKSkKIAogJChJRExfSU5URVJNRURJ
QVRFX1BBVFRFUk5TKSA6ICQoUFJFUFJPQ0VTU19JRExTX1NDUklQVFMpICQoSURMX0FUVFJJQlVU
RVNfRklMRSkgJChKU19CSU5ESU5HX0lETFMpICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5F
X0RFUEVOREVOQ0lFUykKIAkkKHNoZWxsIGVjaG8gJChKU19CSU5ESU5HX0lETFMpIHwgdHIgIiAi
ICJcbiIgPiBJRExGaWxlTmFtZXNMaXN0LnR4dCkKLQkkKFBFUkwpICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVfQU5EX1BM
QVRGT1JNX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0taWRsRmlsZU5hbWVzTGlzdCBJ
RExGaWxlTmFtZXNMaXN0LnR4dCAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNf
RklMRSkgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRF
TkNZX0ZJTEUpIC0taXNvU3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVS
X0ZJTEUpIC0tY29uc3RydWN0b3JzSGVhZGVyRmlsZSAkKENPTlNUUlVDVE9SU19IRUFERVJfRklM
RSkgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlICQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFKSAt
LXdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1hdWRp
b1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQ
TEVNRU5UQUxfTUFLRUZJTEVfREVQUykKKwkkKFBFUkwpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVfQU5EX1BMQVRGT1JN
X0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0taWRsRmlsZU5hbWVzTGlzdCBJRExGaWxl
TmFtZXNMaXN0LnR4dCAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkg
LS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJ
TEUpIC0taXNvU3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUp
IC0tY29uc3RydWN0b3JzSGVhZGVyRmlsZSAkKENPTlNUUlVDVE9SU19IRUFERVJfRklMRSkgLS13
aW5kb3dDb25zdHJ1Y3RvcnNGaWxlICQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFKSAtLXdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0hB
RE9XUkVBTE1HTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNIQVJFRFdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoQVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVu
dGFsTWFrZWZpbGVEZXBzICQoU1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCiAKICMKICMgRW1p
dCB0aGUgcnVsZXMgdG8gZ2VuZXJhdGUgYmluZGluZ3MgZnJvbSBJREwgZmlsZXMuIE5vdGUgdGhh
dCB0aGVyZSBhcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDRlMjYwYjgzMGJiMTExOTc5YzhjNWM0
Y2Y5NmJjMTE3MjU5NmI1MmMuLjE1MzA0NTAzNmJlYWNlNmI4MTQ0OTI2MDJmNmQyZDA2NWFkNjJm
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNDU4LDYgKzQ1OCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaAog
ICAgIGJpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uaAogICAgIGJpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5oCisgICAgYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5oCiAgICAgYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmgKICAgICBi
aW5kaW5ncy9qcy9KU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmgKICAgICBiaW5kaW5ncy9qcy9KU1dp
bmRvd1Byb3h5LmgKQEAgLTExNDQsNiArMTE0NSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oCiAgICAgcGFnZS9T
ZWN1cml0eVBvbGljeS5oCiAgICAgcGFnZS9TZXR0aW5nc0Jhc2UuaAorICAgIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oCiAgICAgcGFnZS9TaGFyZURhdGEuaAogICAgIHBhZ2UvU29ja2V0
UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDEzZWZlNGZmMzM1YTM0YjQxYzQ1MTk4NDE3NGRiZjQyN2Y4ZDY2M2QuLjU3ZDZi
OWRlYzFjMTBlZWFmNTY1MmZlNDI5ZmU1NjEzZGJmYmFkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02
MjEsNiArNjIxLDcgQEAgYmluZGluZ3MvanMvSlNXZWJYUlNwYWNlQ3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNXZWJYUlZpZXdDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNw
cAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCitiaW5kaW5ncy9qcy9K
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyTmF2aWdhdG9yQ3VzdG9tLmNw
cAogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtMTc5NCw2ICsx
Nzk1LDcgQEAgcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRh
LmNwcAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKIHBhZ2UvU2V0dGluZ3NCYXNlLmNwcAorcGFn
ZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcAogcGFnZS9TaGFyZURhdGFSZWFkZXIuY3BwCiBw
YWdlL1NvY2tldFByb3ZpZGVyLmNwcAogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTM4
NjQsNiArMzg2Niw3IEBAIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAogSlNTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uLmNwcAogSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuY3Bw
CiBKU1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCitKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuY3BwCiBKU1NoYWRvd1Jvb3QuY3BwCiBKU1NoYWRvd1Jvb3RJbml0LmNwcAogSlNTaGFkb3dS
b290TW9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA4ZjdiY2JkYTQ2N2EyMWFmNjJhYmIxOTU2NjZlNTg5YjQ3NjJiYzdh
Li40NmFiZjYyNDhhOWIyZTRkZDRlYzhhOWQzNWNkOTA0ZmQ0ZWI1NzVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzQzLDYg
KzEzNDMsOCBAQAogCQk0NjdBNjhEQTI3NUVBOTlDMDA5QjMxQzUgLyogU2hhcmVkV29ya2VyTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3
QTY4RDIyNzVFQTk4QTAwOUIzMUM1IC8qIFNoYXJlZFdvcmtlck1hbmFnZXIuaCAqLzsgfTsKIAkJ
NDY4MkQyMDAxRjc5NzgzMDAwQzg2M0RCIC8qIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgyRDFGRjFGNzk3
ODIzMDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5
NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ2ODNERjQwMjc2
N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzREYzRTI3NjdERjk4MDA3
RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oICovOyB9OworCQk0NjgzREY0
MTI3NjdFOTFBMDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4M0RGM0IyNzY3REYyNjAwN0Qw
MEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0Njg4RUUzQzI2REQyNjEwMDAyQUY1QzQgLyogQ3Jv
c3NPcmlnaW5Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NPcmlnaW5Nb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDY5Q0NDRkUyNjlE
MDIxQzAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2OUNDQ0ZDMjY5RDAyMDIwMDZFMDMxNCAvKiBCcm9h
ZGNhc3RDaGFubmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDY5RDc3QjgyNzAxNjI1MTAwMTQyRkE2IC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2OUQ3N0I2
MjcwMTYyNTAwMDE0MkZBNiAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkyMDgsNiArOTIxMCwxMSBAQAog
CQk0NjgzNDREQzFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVJl
Y3RMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0REQxRURERkE1
RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0REUxRURERkE1RjAw
Qjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJlY3RMaXN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjM5Mjc2N0RGMjYwMDdEMDBDOCAvKiBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzREYzQjI3
NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2ODNERjNDMjc2N0RGMjYwMDdEMDBDOCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDY4M0RGM0QyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2
ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4OEVFM0EyNkREMjYwQzAw
MkFGNUM0IC8qIENyb3NzT3JpZ2luTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc09yaWdpbk1v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4QjhCREUyNUNDODQ5MzAwRjY3
ODIyIC8qIEpTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0Jhc2VBdWRpb0NvbnRleHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NjlDQ0NGQTI2OUQwMjAyMDA2RTAzMTQgLyogQnJvYWRjYXN0Q2hhbm5lbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBCcm9hZGNhc3RDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI0MTgzLDYgKzI0MTkwLDkgQEAKIAkJCQk3Q0RFNzM5NjFGOUJENTk1MDAzOTAz
MTIgLyogU2V0dGluZ3MueWFtbCAqLywKIAkJCQk3Q0M2NjA5QjFGOTMwNTc5MDBENTAwRTkgLyog
U2V0dGluZ3NCYXNlLmNwcCAqLywKIAkJCQk3Q0M2NjA5OTFGOTMwNTc4MDBENTAwRTkgLyogU2V0
dGluZ3NCYXNlLmggKi8sCisJCQkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuY3BwICovLAorCQkJCTQ2ODNERjNCMjc2N0RGMjYwMDdEMDBDOCAvKiBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggKi8sCisJCQkJNDY4M0RGM0MyNzY3REYyNjAwN0QwMEM4
IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovLAogCQkJCTFEQzU1NDAwMjExQkE4Qzgw
MDRCNzgwRSAvKiBTaGFyZURhdGEuaCAqLywKIAkJCQkxREM1NTNGRjIxMUJBODQxMDA0Qjc4MEUg
LyogU2hhcmVEYXRhLmlkbCAqLywKIAkJCQkxQTJDNjY3MTI0MkFGRUY3MDAzMDU1RUMgLyogU2hh
cmVEYXRhUmVhZGVyLmNwcCAqLywKQEAgLTI5MjIwLDYgKzI5MjMwLDggQEAKIAkJCQk5M0I3MEQ1
MDA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmggKi8sCiAJCQkJ
NDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAgKi8s
CiAJCQkJNDZCQ0JCQzAyMDg1MDA3RjAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5o
ICovLAorCQkJCTQ2ODNERjNEMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlLmNwcCAqLywKKwkJCQk0NjgzREYzRTI3NjdERjk4MDA3RDAwQzggLyogSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oICovLAogCQkJCTkzMUFFM0I4MUZCODBFQUUwMEY1RUZC
MiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmggKi8sCiAJCQkJQkNCRkI1M0EwRENEMjlDRjAw
MTlCM0U1IC8qIEpTV2luZG93UHJveHkuY3BwICovLAogCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5
QjNFNSAvKiBKU1dpbmRvd1Byb3h5LmggKi8sCkBAIC0zNTU4Niw2ICszNTU5OCw3IEBACiAJCQkJ
NTE4MkMyNUMxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1MDMxRjM1OEIzQjAwQzc0OTUwIC8qIEpTU2Vydmlj
ZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkVCMzdDRTFGOTdD
Q0QyMDBCNjU1MjMgLyogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjgzREY0MDI3NjdERjk4MDA3RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJEQTY0RDgxQjk3NUNGMjAwOUM0Mzg3IC8q
IEpTU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZERkY0OUMxREMyNjIwQjAwQjgw
QjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOURFMTdCMTdB
QUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzA4
NSw2ICszNzA5OCw3IEBACiAJCQkJMEYzREQ0NTAxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0Js
dXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOEM0MEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFk
b3dEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTExOTRCRjI3MEU3RTRBMDA2NEZDQkEgLyog
U2hhZG93UHNldWRvSWRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjgzREY0MTI3NjdFOTFBMDA3
RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTZE
MTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA1NkE3QUM4MjU2QzRGNDgwMDJGOUREQyAvKiBTaGFkb3dSb290SW5pdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDZERkY0OTgxREMyNjAzMTAwQjgwQjQ4IC8qIFNoYWRvd1Jvb3RNb2RlLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAppbmRleCA1MjUxMGMzMDgxOGYwY2E5MTZhODg0Mzc3ZDIyNGExYWJhNzk1Yjg1
Li42ZjM0MTJlNWMzZTE1MjdmYmFkNGQ0ZjY3YzNmNjZmMTY4NmM5ZTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC00NCw2ICs0
NCw4IEBACiAjaW5jbHVkZSAiSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJK
U1JlYWRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiSlNSZW1vdGVET01XaW5kb3cuaCIKKyNpbmNs
dWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlLmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5oIgogI2lu
Y2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXcml0YWJsZVN0cmVh
bS5oIgpAQCAtMjY2LDYgKzI2OCw4IEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTRE9NR2xv
YmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwogICAgIGlmIChpbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKCkpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoaW5oZXJpdHM8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZT4odm0oKSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
CiAgICAgaWYgKGluaGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKICAgICAg
ICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZSo+KHRoaXMpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKGluaGVyaXRzPEpTV29ya2xldEdsb2Jh
bFNjb3BlQmFzZT4odm0oKSkpCkBAIC01MDYsNiArNTEwLDggQEAgc3RhdGljIFNjcmlwdE1vZHVs
ZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgICAgICAgICByZXR1cm4gJmRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQorICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRz
PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nh
c3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndy
YXBwZWQoKS5tb2R1bGVMb2FkZXIoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxK
U1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
aWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKSkK
QEAgLTU3MCw2ICs1NzYsNTAgQEAgSlNDOjpKU09iamVjdCogSlNET01HbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlMKICAgICByZXR1cm4g
Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51
bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CiB9CiAKK0pTQzo6SlNHbG9iYWxPYmplY3Qq
IEpTRE9NR2xvYmFsT2JqZWN0OjpkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdChKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIGF1dG8gZG9t
R2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsK
KyAgICBhdXRvIGNvbnRleHQgPSBkb21HbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKKworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgLy8gU2Ft
ZS1vcmlnaW4gaWZyYW1lcyBwcmVzZW50IGEgZGlmZmljdWx0IGNpcmN1bXN0YW5jZSBiZWNhdXNl
IHRoZQorICAgICAgICAvLyBzaGFkb3cgcmVhbG0gZ2xvYmFsIG9iamVjdCBjYW5ub3QgcmV0YWlu
IHRoZSBpbmN1YmF0aW5nIHJlYWxtJ3MKKyAgICAgICAgLy8gZ2xvYmFsIG9iamVjdCAodGhhdCB3
b3VsZCBiZSBhIHJlZmNvdW50IGxvb3ApOyBidXQsIHNhbWUtb3JpZ2luCisgICAgICAgIC8vIGlm
cmFtZXMgY2FuIGNyZWF0ZSBvYmplY3RzIHRoYXQgb3V0bGl2ZSB0aGVpciBnbG9iYWwgb2JqZWN0
LgorICAgICAgICAvLworICAgICAgICAvLyBPdXIgc29sdXRpb24gaXMgdG8gd2FsayB1cCB0aGUg
cGFyZW50IHRyZWUgb2YgZG9jdW1lbnRzIGFzIGZhciBhcworICAgICAgICAvLyBwb3NzaWJsZSB3
aGlsZSBzdGlsbCBzdGF5aW5nIGluIHRoZSBzYW1lIERPTVdyYXBwZXJXb3JsZC0tdGhpcyBzaG91
bGQKKyAgICAgICAgLy8gaW5zdXJlIHdlIGRvbid0IGFsbG93IHRoZSBTaGFkb3dSZWFsbSB0byBm
ZXRjaCBtb2R1bGVzIG1hc3F1ZXJhZGluZworICAgICAgICAvLyBhcyB0aGUgd3Jvbmcgb3JpZ2lu
IHdoaWxlIGF2b2lkaW5nIGFueSBsaWZldGltZSBpc3N1ZXMgKHNpbmNlIHRoZQorICAgICAgICAv
LyB0b3Btb3N0IGRvY3VtZW50IHdpdGggYSBnaXZlbiB3cmFwcGVyIHdvcmxkIHNob3VsZCBvdXRs
aXZlIG90aGVyCisgICAgICAgIC8vIG9iamVjdHMgaW4gdGhhdCB3b3JsZCkKKyAgICAgICAgYXV0
byBkb2MgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CisKKyAgICAgICAgd2hpbGUgKCFk
b2MtPmlzVG9wRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgYXV0byBjYW5kaWRhdGUgPSBkb2Mt
PnBhcmVudERvY3VtZW50KCk7CisgICAgICAgICAgICBhdXRvIHRvcEdsb2JhbCA9IGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGNhbmRpZGF0ZS0+Z2xvYmFsT2JqZWN0KCkpOworICAgICAgICAg
ICAgaWYgKCZ0b3BHbG9iYWwtPndvcmxkKCkgPT0gJmRvbUdsb2JhbE9iamVjdC0+d29ybGQoKSkg
eworICAgICAgICAgICAgICAgIGRvYyA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBkb21H
bG9iYWxPYmplY3QgPSB0b3BHbG9iYWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBBU1NFUlQoZG9tR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHNjb3BlID0gU2hhZG93
UmVhbG1HbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvbUdsb2JhbE9iamVjdCwgc2NyaXB0TW9kdWxl
TG9hZGVyKGRvbUdsb2JhbE9iamVjdCkpLnJlbGVhc2VOb25OdWxsKCk7CisKKyAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlU3RydWN0dXJl
KHZtLCBudWxscHRyLCBKU0M6OmpzTnVsbCgpKTsKKyAgICBhdXRvIHByb3h5U3RydWN0dXJlID0g
SlNQcm94eTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBKU0M6OmpzTnVsbCgpKTsKKyAg
ICBhdXRvIHByb3h5ID0gSlNQcm94eTo6Y3JlYXRlKHZtLCBwcm94eVN0cnVjdHVyZSk7CisgICAg
YXV0byB3cmFwcGVyID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpjcmVhdGUodm0sIHN0cnVj
dHVyZSwgV1RGTW92ZShzY29wZSksIHByb3h5KTsKKworICAgIHdyYXBwZXItPnNldFByb3RvdHlw
ZURpcmVjdCh2bSwgd3JhcHBlci0+b2JqZWN0UHJvdG90eXBlKCkpOworICAgIHByb3h5LT5zZXRU
YXJnZXQodm0sIHdyYXBwZXIpOworCisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKKwogSlNET01H
bG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBpZiAoaXM8RG9jdW1lbnQ+
KGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggZjRkODY1ZDlhMDMyN2I4YWQ5NGY3YjBkZjkzY2ZjMGQ1N2NlOGI1OC4uMjI3
OTJhMDlhYTBiMDFmYTA5NmJhYmJhYzNiNTdiOGI2OWExNmQ1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC0zOSw2ICszOSw3IEBAIGNs
YXNzIERPTUd1YXJkZWRPYmplY3Q7CiBjbGFzcyBFdmVudDsKIGNsYXNzIERPTVdyYXBwZXJXb3Js
ZDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2Fk
ZXI7CiAKIHVzaW5nIEpTRE9NU3RydWN0dXJlTWFwID0gSGFzaE1hcDxjb25zdCBKU0M6OkNsYXNz
SW5mbyosIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6U3RydWN0dXJlPj47CiB1c2luZyBET01HdWFy
ZGVkT2JqZWN0U2V0ID0gSGFzaFNldDxET01HdWFyZGVkT2JqZWN0Kj47CkBAIC04Niw2ICs4Nyw3
IEBAIHB1YmxpYzoKICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucyYgYnVpbHRpbkludGVy
bmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50ZXJuYWxGdW5jdGlvbnM7IH0KIAog
ICAgIHN0YXRpYyB2b2lkIHJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AoSlNHbG9i
YWxPYmplY3QqLCBKU0M6OkV4Y2VwdGlvbiopOworICAgIHN0YXRpYyBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdChKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogCiAgICAgdm9pZCBjbGVhckRPTUd1YXJkZWRPYmplY3RzKCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4
IGUxZDc4MTcwZGFiMjExNDRkYTI3YWQyNjRjZmExYTVhZjMyZDEzOTguLjRkOTI3MTc5MWFlYmEy
NzY1YmJmNDIzNTNlYmY1ODc0YWUwYzQ0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtOTUsNiArOTUsNyBAQCBjb25zdCBHbG9iYWxP
YmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgPSB7CiAgICAgbnVsbHB0ciwKICAgICBudWxscHRyLAogI2VuZGlmCisgICAgJmRlcml2ZVNo
YWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93
QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2luZG93PiYmIHdp
bmRvdywgSlNXaW5kb3dQcm94eSogcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcAppbmRleCBhYjNmYWM2NzEzMDRmOGM3
YmNhNTkwMzAzMmVkNmM2MGJkYzFmYTRiLi5hNGQ3MTVmNzA4YzYwYzAyODY1NzljZjE1OTAzNTc3
MDBiN2Q1NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90
ZURPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVt
b3RlRE9NV2luZG93QmFzZS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgSlNSZW1vdGVET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlID0KICAgICBudWxscHRyLCAvLyBkZWZhdWx0TGFuZ3VhZ2UKICAgICBudWxscHRyLCAvLyBj
b21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0ciwgLy8gaW5zdGFudGlhdGVTdHJlYW1pbmcKKyAg
ICBudWxscHRyLCAvLyBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogSlNSZW1v
dGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmUHRyPFJlbW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJv
eHkqIHByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWNlNzBhZGM2YjJk
ZTQ4OTY2Yjk3MTMxYWQwZDk5ZmRhOTRhNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTAs
MCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2UuaCIKKworI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgIkpTTWljcm90
YXNrQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNp
bmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNQcm94eS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01pY3JvdGFzay5o
PgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBKU0M7CisKK2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiwgJkpTRE9NR2xv
YmFsT2JqZWN0OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSkgfTsKKworY29uc3QgR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSA9IHsKKyAgICAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywKKyAgICAmc2hvdWxkSW50
ZXJydXB0U2NyaXB0LAorICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAorICAgICZxdWV1ZU1p
Y3JvdGFza1RvRXZlbnRMb29wLAorICAgICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1l
b3V0LAorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJl
c29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJ
bXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCisgICAgJnBy
b21pc2VSZWplY3Rpb25UcmFja2VyLAorICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZl
bnRMb29wLAorICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCisgICAgJnNjcmlwdEV4
ZWN1dGlvblN0YXR1cywKKyAgICAmcmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbCwKKyAgICBb
XSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisgICAgJmNvbXBpbGVTdHJlYW1pbmcsCisgICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLAorI2Vs
c2UKKyAgICBudWxscHRyLAorICAgIG51bGxwdHIsCisjZW5kaWYKKyAgICAmZGVyaXZlU2hhZG93
UmVhbG1HbG9iYWxPYmplY3QsCit9OworCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsKQorICAgIDog
SlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgbm9ybWFsV29ybGQodm0pLCAmc19nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSkKKyAgICAsIG1fd3JhcHBlZChXVEZNb3ZlKGltcGwpKQorewor
fQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNQcm94eSogcHJveHkpCit7CisgICAgbV9wcm94eS5zZXQodm0sIHRoaXMsIHByb3h5
KTsKKyAgICBtX3dyYXBwZWQtPm1fd3JhcHBlciA9IEpTQzo6V2Vhayh0aGlzKTsKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSwgbV9wcm94eS5nZXQoKSk7CisgICAgQVNTRVJUKGluaGVyaXRz
KHZtLCBpbmZvKCkpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KK3ZvaWQgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxs
LCBWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2Uq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGNlbGwp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAg
ICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgIHZpc2l0b3Iu
YXBwZW5kKHRoaXNPYmplY3QtPm1fcHJveHkpOworfQorCitERUZJTkVfVklTSVRfQ0hJTERSRU4o
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSk7CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBpbmN1YmF0aW5nKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKK30KKworY29uc3QgSlNET01HbG9iYWxPYmplY3QqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OmluY3ViYXRpbmcoKSBjb25zdAoreworICAgIGF1dG8gaW5jdWJhdGluZ1dyYXBwZXIg
PSBtX3dyYXBwZWQtPm1faW5jdWJhdGluZ1dyYXBwZXIuZ2V0KCk7CisgICAgQVNTRVJUKGluY3Vi
YXRpbmdXcmFwcGVyKTsKKyAgICByZXR1cm4gaW5jdWJhdGluZ1dyYXBwZXI7Cit9CisKK3ZvaWQg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7Cisg
ICAgc3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGNlbGwpLT5KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSgp
OworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1cHBvcnRzUmljaFNv
dXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKK3sKKyAgICBhdXRvIG9iaiA9
IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5j
dWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnN1
cHBvcnRzUmljaFNvdXJjZUluZm8ob2JqKTsKK30KKworYm9vbCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9i
amVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKCktPnNob3VsZEludGVycnVwdFNjcmlwdChvYmopOworfQorCiti
b29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKK3sKKyAgICBhdXRvIG9i
aiA9IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+
aW5jdWJhdGluZygpOworICAgIHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkt
PnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQob2JqKTsKK30KKworUnVudGltZUZs
YWdzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmphdmFTY3JpcHRSdW50aW1lRmxhZ3Mo
Y29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKK3sKKyAgICBhdXRvIG9iaiA9IGpzQ2FzdDxj
b25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJhdGluZygp
OworICAgIHJldHVybiBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPmphdmFTY3JpcHRS
dW50aW1lRmxhZ3Mob2JqKTsKK30KKworSlNDOjpTY3JpcHRFeGVjdXRpb25TdGF0dXMgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2NyaXB0RXhlY3V0aW9uU3RhdHVzKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU09iamVjdCogb3duZXIpCit7CisgICAgYXV0
byBvYmogPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVj
dCktPmluY3ViYXRpbmcoKTsKKyAgICByZXR1cm4gb2JqLT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5zY3JpcHRFeGVjdXRpb25TdGF0dXMob2JqLCBvd25lcik7Cit9CisKK3ZvaWQgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNTdHJpbmcqIG1zZykKK3sKKyAg
ICBhdXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFs
T2JqZWN0KS0+aW5jdWJhdGluZygpOworICAgIG9iai0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUo
KS0+cmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChvYmosIG1zZyk7Cit9CisKK3ZvaWQgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcChKU0ds
b2JhbE9iamVjdCYgb2JqZWN0LCBSZWY8SlNDOjpNaWNyb3Rhc2s+JiYgdGFzaykKK3sKKyAgICBh
dXRvIG9iaiA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oJm9iamVjdCkt
PmluY3ViYXRpbmcoKTsKKyAgICBvYmotPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AoKm9iaiwgV1RGTW92ZSh0YXNrKSk7Cit9CisKK0pTVmFsdWUg
dG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmpl
Y3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiByZWFsbUdsb2JhbFNjb3BlKQoreworICAgIHJl
dHVybiB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHJlYWxtR2xvYmFsU2NvcGUpOworfQorCitK
U1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiByZWFs
bUdsb2JhbFNjb3BlKQoreworICAgIEFTU0VSVChyZWFsbUdsb2JhbFNjb3BlLndyYXBwZXIoKSk7
CisgICAgcmV0dXJuICZyZWFsbUdsb2JhbFNjb3BlLndyYXBwZXIoKS0+cHJveHkoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NmQw
YmU3ZGRhYzc1Mzc0M2NhM2IzOTdiYzJiYTY2OGEzMDJmYjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgK
QEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxT
Y29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGU7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3QgeworcHVibGljOgorICAg
IHVzaW5nIEJhc2UgPSBKU0RPTUdsb2JhbE9iamVjdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
LCBKU0M6OlN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRpYyB2b2lkIHN1YnNwYWNlRm9yKEpTQzo6
Vk0mKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKworICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVybiAqbV93cmFwcGVkOyB9
CisKKyAgICBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGluZygpIGNvbnN0OworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1YmF0aW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBj
b25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29uc3RfY2FzdDxjb25zdCBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPmluY3ViYXRpbmcoKSk7CisgICAgfQorCisgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Owor
CisgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZTsKKworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUlu
Zm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBib29sIHNob3VsZElu
dGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIGJv
b2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6UnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1l
RmxhZ3MoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBKU0M6OlNjcmlw
dEV4ZWN1dGlvblN0YXR1cyBzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBxdWV1ZU1pY3JvdGFza1RvRXZl
bnRMb29wKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8SlNDOjpNaWNyb3Rhc2s+JiYpOworICAg
IHN0YXRpYyB2b2lkIHJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6SlNTdHJpbmcqKTsKKworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGU+JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
Qzo6SlNQcm94eSopOworCisgICAgREVDTEFSRV9WSVNJVF9DSElMRFJFTjsKKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gbV93cmFwcGVkOworfTsKKworLy8g
UmV0dXJucyBhIEpTV29ya2VyR2xvYmFsU2NvcGUgb3IganNOdWxsKCkKKy8vIEFsd2F5cyBpZ25v
cmVzIHRoZSBleGVjU3RhdGUgYW5kIHBhc3NlZCBnbG9iYWxPYmplY3QsIFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUgaXMgaXRzZWxmIGEgZ2xvYmFsT2JqZWN0IGFuZCB3aWxsIGFsd2F5cyB1c2UgaXRz
IG93biBwcm90b3R5cGUgY2hhaW4uCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7Citpbmxp
bmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QsICpzY29wZSkgOiBKU0M6OmpzTnVsbCgpOyB9CitKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYpOworaW5saW5l
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHNjb3BlKSB7IHJldHVybiBzY29wZSA/IHRvSlMo
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IGI5ZmE0OTE4ZDJkNWE5MGI3MGIyNDI3
ZDQxNDhjNTVmZjc4MjdkYmQuLjc3MzAxYTUxNTk5NTkyZGU4N2IwNzY2NWI2NzE2ZWFlNTBjMGZm
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICBkZXJpdmVTaGFkb3dS
ZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAyOTE0
MTkzNDJiMDkyMzY5Yzk3ODJlZTMyZjQ5Y2MzODgxODgzNTU4Li5hNzk4ZTQyNmFiZjIyZTc4NWRi
ZTNhYmE3ZTUwOGIzY2FiMjUxYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTY2LDYgKzY2LDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5k
aWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2xldEds
b2JhbFNjb3BlQmFzZTo6SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2xldEdsb2JhbFNjb3BlPiYmIGltcGwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAppbmRleCBhZDkzY2UwOTAyYzU3YjA1NTQ4NGJiNTQzNDQxNzM4OTMyZDQ2YmEzLi5lZTNiNTM4
ZDc5MTNkZDc2NmY1ZTZiMjYyYzcyNDczM2I2ZDhhZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIlNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUludGVncml0eS5oIgog
I2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaCIKQEAgLTc0LDYgKzc1LDEzIEBAIFNjcmlwdE1vZHVsZUxvYWRlcjo6flNj
cmlwdE1vZHVsZUxvYWRlcigpCiAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKIH0KIAor
c3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gU2NyaXB0TW9kdWxlTG9hZGVyOjpz
aGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiByZWFsbUdsb2JhbCkgY29uc3QK
K3sKKyAgICBhdXRvIGxvYWRlciA9IFdURjo6bWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+
KG1fY29udGV4dCwgbV9vd25lclR5cGUpOworICAgIGxvYWRlci0+bV9zaGFkb3dSZWFsbUdsb2Jh
bCA9IHJlYWxtR2xvYmFsOworICAgIHJldHVybiBsb2FkZXI7Cit9CisKIHN0YXRpYyBib29sIGlz
Um9vdE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiB7CiAgICAgcmV0dXJu
IGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRl
ZmluZWQoKTsKQEAgLTI0NCw3ICsyNTIsOSBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9h
ZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAg
IGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBl
RXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVS
TC4iX3MpOwogCi0gICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsK
KyAgICBpZiAobV9zaGFkb3dSZWFsbUdsb2JhbCkgeworICAgICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUobV9zaGFkb3dSZWFsbUdsb2JhbCwgYXdh
aXRlZFZhbHVlLCByZXN1bWVNb2RlKSk7CisgICAgfSBlbHNlIGlmIChtX293bmVyVHlwZSA9PSBP
d25lclR5cGU6OkRvY3VtZW50KSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0
PERvY3VtZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICpt
b2R1bGVSZWNvcmQsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9kZSkpOwogICAgIH0gZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4
IGU4MmE4YmI0MzM3MWVhNmNhYjhmY2ZhODQyNGQ4N2ViM2M5ODYzMTguLjM5YzhkZDVhNTFkMGRh
OTVmMjM3NTU5YmU5ZjBkMzFlZTJkYzM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93
bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gc2hhZG93UmVhbG1Mb2FkZXIoSlNDOjpKU0dsb2JhbE9i
amVjdCogcmVhbG1HbG9iYWwpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVyIHJl
c29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpT
VmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgc2NyaXB0RmV0Y2hlcik7CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKICAgICBIYXNo
U2V0PFJlZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAgICAgT3duZXJUeXBlIG1f
b3duZXJUeXBlOworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIG1fc2hhZG93UmVhbG1HbG9iYWwg
eyBudWxscHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDZkNDZi
MTU0MzU2MTY1MjQ1MDE3OWIwNzQ3Y2RiODc0YjJlZGVkNzEuLjQ5YjAyYmYwZTc2MDMwYjA2ZmQ1
OWE3NmZlNTYwNTQ3MWEyZjZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTUmVtb3RlRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIkpTV29ya2Vy
R2xvYmFsU2NvcGUuaCIKQEAgLTY4LDYgKzY5LDcgQEAgSlNWTUNsaWVudERhdGE6OkpTVk1DbGll
bnREYXRhKFZNJiB2bSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3co
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNSZW1vdGVET01XaW5kb3c+KCkpCiAgICAgLCBt
X2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6
OkFyZ3M8SlNXb3JrZXJHbG9iYWxTY29wZT4oKSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlPigpKQorICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVhcENl
bGxUeXBlRm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6
OkFyZ3M8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4MDM2NmEw
YzdmNzIyMDIzZjc5MzgxNGFmNmVhNTcxMWRhOTg0Nzc3Li4zN2M5YTFlNjY0ZGY4NWZiYmRlNjMz
MTY5MTE0OGM3YzYyNjY4N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIEpT
Qzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3c7CiAg
ICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtlckdsb2JhbFNj
b3BlOwogICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNTaGFyZWRX
b3JrZXJHbG9iYWxTY29wZTsKKyAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlw
ZUZvckpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAwOTRiMWJmZDM4NTliYjIyNjQ0YmFjZTIw
NTgzMmU2ZDYxYTRkMmM0Li5hNmRhNTY0ODBkZDdiZjdhMTFmNTJiZDNiNWI1M2VkNDg2Zjk2MGQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtNzY2LDcgKzc2Niw3IEBAIHN1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQogc3Vi
IElzRE9NR2xvYmFsT2JqZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIHJl
dHVybiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2Vu
ZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3Bl
IikgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiVGVzdEdsb2JhbE9iamVjdCI7CisgICAg
cmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFj
ZS0+dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVH
ZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2Nv
cGUiKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
IiB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKIH0KIAog
c3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQpAQCAtNzgxLDYgKzc4MSwxMyBAQCBz
dWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCiAgICAgcmV0dXJuIElzRE9NR2xvYmFs
T2JqZWN0KCRpbnRlcmZhY2UpOwogfQogCitzdWIgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90
b3R5cGUKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gJGludGVy
ZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QoKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlIjsKK30KKwogc3ViIEdlbmVyYXRlSW5kZXhlZEdldHRlcgog
ewogICAgIG15ICgkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgJGluZGV4RXhw
cmVzc2lvbikgPSBAXzsKQEAgLTI4NzcsNyArMjg4NCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9u
KHZtLCBwcm94eSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAg
cmV0dXJuIHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxu
Iik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRl
cmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0lu
dGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIp
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xl
dEdsb2JhbFNjb3BlIikpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGwsIEpTQzo6SlNQcm94eSogcHJveHkpXG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6
OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPih2bSkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJl
LCBXVEZNb3ZlKGltcGwpKTtcbiIpOwpAQCAtMjkxOSw3ICsyOTI2LDcgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8
IEpTQzo6SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSJ9ID0gMSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IjsKICAgICAgICAgCiAgICAgIyBQcm90b3R5cGUKLSAgICB1bmxlc3Mg
KFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNl
LT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0
UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8IFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBl
KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmpl
Y3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG4iKTsK
ICAgICB9CkBAIC0zMTgzLDcgKzMxOTAsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIENv
bnN0cnVjdG9yCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRl
cmZhY2VOYW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8JGlt
cGxUeXBlPiYmLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikg
fHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0
R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGlu
dGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0
dXJlKiwgUmVmPCRpbXBsVHlwZT4mJik7XG4iKTsKICAgICB9IGVsc2lmICghTmVlZHNJbXBsZW1l
bnRhdGlvbkNsYXNzKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgJGNsYXNzTmFtZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG5c
biIpOwpAQCAtMzE5Myw3ICszMjAwLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBpZiAo
JGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZU5hbWUgZXEgIlJlbW90
ZURPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU1dpbmRvd1Byb3h5Kik7XG4iKTsKLSAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckds
b2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZh
Y2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJ
bnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0
b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkg
ewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNDOjpWTSYsIEpTQzo6SlNQcm94eSopO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTtcbiIp
OwpAQCAtMzk3Miw2ICszOTc5LDggQEAgc3ViIEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlv
bmFsU3RyaW5nRm9yRXhwb3NlZAogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAi
V29ya2VyIikgewogICAgICAgICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc1dvcmtlckdsb2JhbFNjb3BlKCkiKTsKKyAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAi
U2hhZG93UmVhbG0iKSB7CisgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIik7CiAgICAgfSBlbHNpZiAoJGV4
cG9zZWQgZXEgIldvcmtsZXQiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzV29ya2xldEdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgk
ZXhwb3NlZCBlcSAiQXVkaW9Xb3JrbGV0IikgewpAQCAtNDUxMSw3ICs0NTIwLDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgJGhhc2hTaXplKys7CiAgICAgfQogCi0gICAg
aWYgKCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNl
T3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgbXkgJGp1c3RH
ZW5lcmF0ZVZhbHVlQXJyYXkgPSAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiAKICAg
ICAgICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwgJGhhc2hOYW1lLCAk
aGFzaFNpemUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFz
aFZhbHVlMiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkanVzdEdl
bmVyYXRlVmFsdWVBcnJheSk7CkBAIC00NTI0LDcgKzQ1MzMsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7XG4iKTsKICAgICB9CiAKLSAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJv
cGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkg
JiYgISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKFByb3RvdHlwZUhh
c1N0YXRpY1Byb3BlcnR5VGFibGUoJGludGVyZmFjZSkgJiYgIUlzR2xvYmFsSW50ZXJmYWNlKCRp
bnRlcmZhY2UpICYmICFTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNl
KSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sICR7Y2xhc3NOYW1lfTo6aW5mbygpLCAke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZVZh
bHVlcywgKnRoaXMpO1xuIik7CiAKICAgICAgICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJvcGVydGll
cyA9IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnM7CkBAIC00NjA1LDcgKzQ2MTQsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgYXNzZXJ0KCJKU0NfVE9fU1RSSU5HX1RBR19X
SVRIT1VUX1RSQU5TSVRJT04oKSByZXF1aXJlcyBzdHJpbmdzIHR3byBvciBtb3JlIGNoYXJhY3Rl
cnMgbG9uZyIpIGlmIGxlbmd0aCgkdmlzaWJsZUludGVyZmFjZU5hbWUpIDwgMjsKIAotICAgIGlm
ICghJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoIVNob3VsZFVzZU9y
ZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpO1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CkBAIC00NjM3LDcg
KzQ2NDYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShp
bXBsKSwgcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2Vu
ZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUi
KSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmts
ZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgk
aW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJp
dHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CiAgICAgICAg
IEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlSW5JbXBsKCRpbnRlcmZhY2VOYW1lKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsKVxuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3Ry
dWN0dXJlLCBXVEZNb3ZlKGltcGwpKVxuIik7CkBAIC00NjU4LDcgKzQ2NjcsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtj
bGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTV2luZG93UHJveHkqIHByb3h5KVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7XG5cbiIpOwot
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZh
Y2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9i
YWxTY29wZSIpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFt
ZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7CkBAIC00NzU4LDcgKzQ3
NjcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHZtLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQod3JhcHBlZCgpLm1lbW9y
eUNvc3QoKSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRF
eHRyYU1lbW9yeUNvc3R9OwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAg
IHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9i
YWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQ
cm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09i
amVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CiAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CkBAIC03NTY1LDcgKzc1
NzQsNyBAQCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkb3V0
cHV0QXJyYXksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0gQF87CiAKLSAgICByZXR1cm4gaWYg
JGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisgICAgcmV0dXJuIGlmIFNob3VsZFVzZU9y
ZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgJHByb3RvdHlwZUNs
YXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCkBAIC03ODQyLDcgKzc4NTEsNyBA
QCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoISRnZW5lcmF0
aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uIGFuZCAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CiAg
ICAgICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+cGFyZW50VHlw
ZS0+bmFtZTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke3BhcmVu
dENsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTtcbiIpOwotICAg
IH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgfSBlbHNpZiAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4iKTsK
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsK
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2Jq
ZWN0UHJvdG90eXBlKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNWI4OTMxM2ZlNWNhZWZiODkxMmZiNDM2ZjE0
NzY4MmYwNDc1NzdiYS4uNzQxYTU4YjE5ZjEyOGRlNGYwOWIxY2I1NjZjZjUxYTkxZWQ3ZjhiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CiBteSAk
Y29uc3RydWN0b3JzSGVhZGVyRmlsZTsKIG15ICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlOwogbXkg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKK215ICRzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZTsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CkBAIC02
NSw3ICs2Niw4IEBAIG15IEBzdXBwb3J0ZWRHbG9iYWxDb250ZXh0cyA9ICgKICAgICAiRGVkaWNh
dGVkV29ya2VyIiwKICAgICAiU2VydmljZVdvcmtlciIsCiAgICAgIlBhaW50V29ya2xldCIsCi0g
ICAgIkF1ZGlvV29ya2xldCIKKyAgICAiQXVkaW9Xb3JrbGV0IiwKKyAgICAiU2hhZG93UmVhbG0i
LAogKTsKIAogIyBUb2dnbGUgdGhpcyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBmYXN0IHJlZ3VsYXIg
ZXhwcmVzc2lvbiBiYXNlZCAicGFyc2luZyIgdXNlZApAQCAtODIsNiArODQsNyBAQCBHZXRPcHRp
b25zKCdkZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ2NvbnN0cnVjdG9yc0hl
YWRlckZpbGU9cycgPT4gXCRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlLAogICAgICAgICAgICAnd2lu
ZG93Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUsCiAgICAg
ICAgICAgICd3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlPXMnID0+IFwkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAnc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZT1zJyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAg
ICAgICAgICAgICdzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCkBAIC05OCw2ICsxMDEs
NyBAQCBkaWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3JvcyB1c2luZyAtLWRlZmluZXMuJykg
dW5sZXNzIGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZp
bGUgdXNpbmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgk
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0
IGZpbGUgdXNpbmcgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3
aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxl
IHVzaW5nIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZp
bmVkKCR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNp
ZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1kZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qg
c3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNp
bmcgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRl
ZmluZWQoJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xMTMs
NiArMTE3LDcgQEAgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpOwogJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUgPSBDeWd3
aW5QYXRoSWZOZWVkZWQoJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUpOwogJHdpbmRvd0NvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwog
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkZGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0g
Q3lnd2luUGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsK
QEAgLTE1NCw2ICsxNTksNyBAQCBteSAlZGljdGlvbmFyeURlcGVuZGVuY2llczsKIG15ICVzdXBw
bGVtZW50YWxzOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgPSAiIjsKQEAgLTI3Miw2ICsyNzgsOCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAo
c29ydCBrZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICAgICAgICAgICAgICAgICAkd2luZG93Q29u
c3RydWN0b3JzQ29kZSAuPSAkd2luZG93QWxpYXNlcyBpZiAkd2luZG93QWxpYXNlczsKICAgICAg
ICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJXb3JrZXIiKSB7CiAgICAgICAgICAg
ICAgICAgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29k
ZTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTaGFkb3dSZWFsbSIp
IHsKKyAgICAgICAgICAgICAgICAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Nv
ZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4
dCBlcSAiRGVkaWNhdGVkV29ya2VyIikgewogICAgICAgICAgICAgICAgICRkZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAg
ICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2VydmljZVdvcmtlciIpIHsKQEAgLTMw
Myw2ICszMTEsNyBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxl
TmFtZUhhc2gpIHsKICMgR2VuZXJhdGUgcGFydGlhbCBpbnRlcmZhY2VzIGZvciBDb25zdHJ1Y3Rv
cnMuCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRPTVdpbmRvdyIsICR3aW5kb3dDb25zdHJ1
Y3RvcnNDb2RlLCAkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIldvcmtlckdsb2JhbFNjb3BlIiwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRp
YWxJbnRlcmZhY2UoIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAkc2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUsICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJ
bnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNoYXJlZFdvcmtlckdsb2JhbFNj
b3BlIiwgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZWUzN2Q0MWRkYmNmZDczYTIzYzJhNjlkYzMz
ZWE4Y2ZiZGNkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApAQCAtMCwwICsxLDIw
MiBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNl
IHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1i
aW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKKyNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJKU0RPTUF0
dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCisjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0SW5saW5lcy5oIgorI2luY2x1ZGUg
IkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiSlNFeHBvc2VkU3Rhci5oIgorI2luY2x1
ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBB
bmFseXplci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yTWFjcm9zLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU3Vic3BhY2VJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKKy8vIEF0dHJpYnV0ZXMK
Kworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CisKK3VzaW5nIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlPjsKKworLyogSGFzaCB0YWJsZSAqLworCitzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRl
eFs1XSA9IHsKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEg
fSwKKyAgICB7IDAsIDQgfSwKKyAgICB7IDEsIC0xIH0sCit9OworCisKK3N0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZVZhbHVlc1tdID0KK3sK
KyAgICB7ICJFeHBvc2VkU3RhciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4
cG9zZWRTdGFyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiU2hhZG93UmVhbG1HbG9iYWxTY29w
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6aW5mbygpLCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRleCB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVj
dG9yKSB9OworCit0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0odm0pOwor
ICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCk7Cit9CisKK3RlbXBsYXRl
PD4gdm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6
ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorewor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CisgICAgSlNTdHJpbmcqIG5hbWVTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJp
bmcodm0sICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIl9zKTsKKyAgICBtX29yaWdpbmFsTmFtZS5z
ZXQodm0sIHRoaXMsIG5hbWVTdHJpbmcpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bmFtZSwgbmFtZVN0cmluZywgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdsb2JhbE9iamVjdC5nZXRQcm90b3R5cGVEaXJl
Y3Qodm0pLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSk7
Cit9CisKK2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnNfaW5mbyA9
IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAmSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKSB9OworCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OkpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8U2hhZG93
UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsKQorICAgIDogSlNET01XcmFwcGVyPFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU+KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpCit7Cit9CisKK3ZvaWQg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkq
IHByb3h5KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7CisKKyAgICBz
dGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZl
RE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFj
dGl2ZURPTU9iamVjdC4iKTsKKworfQorCitKU1ZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVET01Db25zdHJ1Y3RvciwgRE9NQ29uc3RydWN0b3JJRDo6U2hhZG93UmVhbG1HbG9iYWxT
Y29wZT4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
KTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmRlc3Ryb3koSlNDOjpKU0Nl
bGwqIGNlbGwpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4oY2VsbCk7CisgICAgdGhpc09i
amVjdC0+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CisgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQorICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOworfQorCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgdGhpc09iamVjdCkK
K3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIEpT
RXhwb3NlZFN0YXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZT46OmdldDxqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0
YXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0
cmlidXRlTmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHRo
aXNPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAg
IHJldHVybiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQorewor
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPjo6Z2V0PGpz
U2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOwor
fQorCitKU0M6Oklzb1N1YnNwYWNlKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnN1YnNwYWNl
Rm9ySW1wbChKU0M6OlZNJiB2bSkKK3sKKyAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisgICAgYXV0byYgc3BhY2VzID0g
Y2xpZW50RGF0YS5zdWJzcGFjZXMoKTsKKyAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9z
dWJzcGFjZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0KCkpCisgICAgICAgIHJldHVybiBz
cGFjZTsKKyAgICBzcGFjZXMubV9zdWJzcGFjZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCBjbGllbnRE
YXRhLm1faGVhcENlbGxUeXBlRm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLCBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUpOworICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlLmdldCgpOworSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJl
YWNoYWJsZS1jb2RlIikKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBh
cmUiKQorICAgIHZvaWQgKCpteVZpc2l0T3V0cHV0Q29uc3RyYWludCkoSlNDOjpKU0NlbGwqLCBK
U0M6OlNsb3RWaXNpdG9yJikgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnZpc2l0T3V0cHV0
Q29uc3RyYWludHM7CisgICAgdm9pZCAoKmpzQ2VsbFZpc2l0T3V0cHV0Q29uc3RyYWludCkoSlND
OjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikgPSBKU0M6OkpTQ2VsbDo6dmlzaXRPdXRwdXRD
b25zdHJhaW50czsKKyAgICBpZiAobXlWaXNpdE91dHB1dENvbnN0cmFpbnQgIT0ganNDZWxsVmlz
aXRPdXRwdXRDb25zdHJhaW50KQorICAgICAgICBjbGllbnREYXRhLm91dHB1dENvbnN0cmFpbnRT
cGFjZXMoKS5hcHBlbmQoc3BhY2UpOworSUdOT1JFX1dBUk5JTkdTX0VORAorSUdOT1JFX1dBUk5J
TkdTX0VORAorICAgIHJldHVybiBzcGFjZTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGU6OmFuYWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZSo+KGNlbGwpOworICAgIGFuYWx5emVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCisgICAgICAgIGFuYWx5emVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJs
ICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
KTsKKyAgICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFseXplcik7Cit9CisKK2Jvb2wgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgQWJzdHJhY3RTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oaGFu
ZGxlKTsKKyAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNv
bik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCog
Y29udGV4dCkKK3sKKyAgICBhdXRvKiBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgPSBzdGF0aWNf
Y2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
CisgICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4
dCk7CisgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUt
PndyYXBwZWQoKSwganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKK30KKworU2hhZG93UmVhbG1H
bG9iYWxTY29wZSogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp0b1dyYXBwZWQoSlNDOjpWTSYg
dm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4odm0sIHZhbHVlKSkKKyAgICAgICAg
cmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2ZlMjNmMzA4
MDQwMTMyMDNlMzFhMWI0MWJlYTZkNTk1YTg3MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdl
YktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0
ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgOiBwdWJsaWMgSlNET01X
cmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNl
ID0gSlNET01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OworICAgIHN0YXRpYyBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCwgSlNDOjpKU1By
b3h5KiBwcm94eSkKKyAgICB7CisgICAgICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSogcHRy
ID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU+KHZtKSkgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUo
aW1wbCkpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7CisgICAgICAg
IHJldHVybiBwdHI7CisgICAgfQorCisgICAgc3RhdGljIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUq
IHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgSlND
OjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6R2xvYmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMg
SlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCisgICAgeworICAgICAg
ICBpZiBjb25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6Q29uY3VycmVudGx5
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdWJzcGFjZUZv
ckltcGwodm0pOworICAgIH0KKyAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3JJbXBsKEpTQzo6Vk0mIHZtKTsKKyAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwq
LCBKU0M6OkhlYXBBbmFseXplciYpOworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKK3Byb3RlY3RlZDoKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+
JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopOwor
fTsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXIgZmluYWwgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgeworcHVibGljOgorICAgIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpBYnN0cmFjdFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKKyAgICB2b2lkIGZp
bmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwor
fTsKKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSopCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVyPiBvd25lcjsKKyAgICByZXR1cm4g
Jm93bmVyLmdldCgpOworfQorCitpbmxpbmUgdm9pZCogd3JhcHBlcktleShTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKiB3cmFwcGFibGVPYmplY3QpCit7CisgICAgcmV0dXJuIHdyYXBwYWJsZU9iamVj
dDsKK30KKworCit0ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8
U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZTsKKyAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSo7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNlODEyZjA0ODY0NjZjZDhlNGQ5NzE2MmI0Y2RkM2Y2MzJkMmRlODgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAK
Ky8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0
aGF0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVkIGZvciBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxk
CisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTgxMmYwNDg2NDY2
Y2Q4ZTRkOTcxNjJiNGNkZDNmNjMyZDJkZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJh
dGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmggYW5kCisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRv
IHJlZ2VuZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NzZkZDdmMWZlN2E5
YWNkOTY5ZTYwY2EwZThkOWNmZWJlMTRmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKQEAg
LTAsMCArMSwyIEBACitbRXhwb3NlZD1TaGFkb3dSZWFsbV0gaW50ZXJmYWNlIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2U0ODcxMzE2ZDZhMDczNDI3NmQzYjRlOTQ5OGY3
MDRmNmM1YTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBAIC0wLDAg
KzEsNCBAQAorcGFydGlhbCBpbnRlcmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgICAg
YXR0cmlidXRlIEV4cG9zZWRTdGFyQ29uc3RydWN0b3IgRXhwb3NlZFN0YXI7CisgICAgYXR0cmli
dXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKaW5kZXggYzEyMzIxNTI0
NjFhNmMyZWQyZTU0ODBhMmU3YzZkYjY4ODRiYTQ2My4uZTMxZTBmNTgyM2NlY2RjNTBjY2JiYzRm
N2YyNjE2NzJhYzBlNzEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKQEAg
LTIxLDYgKzIxLDEwIEBAIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6IFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIERPTVNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbAogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbDoKK0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
LmlkbAorRE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbAorV2ViRE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGw6CiBKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUu
aDogU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01TaGFyZWRX
b3JrZXJHbG9iYWxTY29wZS5oOiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDM1
MzNjMjBlMmVlNTc5NjBiNTRiZmUxNTM2ZGUzZmIyZjhjY2ExODYuLjJhYWI3YjYyNTllN2YxMjkz
YTgwMWY4YjMwZTI5OGQyMmVjN2NjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtMzEyLDYgKzMxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ2Fs
bGVycyBzaG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4K
ICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2Ny
aXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiA9IG51bGxwdHIsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4
Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpID0gMDsKKwogICAgIGJvb2wgZGlzcGF0Y2hFcnJv
ckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNv
bHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9uKiwgQ2Fj
aGVkU2NyaXB0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBhN2Q1NThiMmEyNDc2OTE3ZjUyMTIwZGQ1ZDY4NmM3Nzc5MDZkMjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2hhZG93UmVhbG1H
bG9iYWxTY29wZSk7CisKK1JlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIHdyYXBwZXIsIFNjcmlw
dE1vZHVsZUxvYWRlciogbG9hZGVyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSh3cmFwcGVyLCBsb2FkZXIpKTsKK30KKworU2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6U2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0RPTUdsb2JhbE9iamVjdCogd3JhcHBl
ciwgU2NyaXB0TW9kdWxlTG9hZGVyKiBsb2FkZXIpCisgICAgOiBtX2luY3ViYXRpbmdXcmFwcGVy
KHdyYXBwZXIpCisgICAgLCBtX3BhcmVudExvYWRlcihsb2FkZXIpCit7IH0KKworU2NyaXB0TW9k
dWxlTG9hZGVyJiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIoKQoreworICAg
IGlmIChtX21vZHVsZUxvYWRlcikKKyAgICAgICAgcmV0dXJuICptX21vZHVsZUxvYWRlcjsKKwor
ICAgIGF1dG8gd3JhcHBlciA9IG1fd3JhcHBlci5nZXQoKTsKKyAgICBBU1NFUlQod3JhcHBlcik7
CisKKyAgICBtX21vZHVsZUxvYWRlciA9IG1fcGFyZW50TG9hZGVyLT5zaGFkb3dSZWFsbUxvYWRl
cih3cmFwcGVyKTsKKyAgICByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOworfQorCitKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp3cmFwcGVyKCkKK3sK
KyAgICByZXR1cm4gbV93cmFwcGVyLmdldCgpOworfQorCitTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Ojp+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpIHsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ3NjVlYTQ5ODdiMzRhZTUyYzJlY2UxNjUwMjQ1MDM0ODAwMTRjMzkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZs
YWdzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvV2Vhay5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBKU0MgeyBjbGFzcyBWTTsgfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U7CitjbGFzcyBKU0RPTUds
b2JhbE9iamVjdDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVm
Q291bnRlZDxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiB7CisgICAgZnJpZW5kIGNsYXNzIEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2U7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlKTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8U2hhZG93
UmVhbG1HbG9iYWxTY29wZT4gdHJ5Q3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgU2NyaXB0TW9k
dWxlTG9hZGVyKik7CisgICAgflNoYWRvd1JlYWxtR2xvYmFsU2NvcGUoKTsKKworICAgIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUmIHNlbGYoKSB7IHJldHVybiAqdGhpczsgfQorICAgIFNjcmlwdE1v
ZHVsZUxvYWRlciYgbW9kdWxlTG9hZGVyKCk7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZSogd3JhcHBlcigpOworCitwcm90ZWN0ZWQ6CisgICAgU2hhZG93UmVhbG1HbG9iYWxTY29w
ZShKU0RPTUdsb2JhbE9iamVjdCosIFNjcmlwdE1vZHVsZUxvYWRlciopOworCitwcml2YXRlOgor
ICAgIEpTQzo6V2VhazxKU0RPTUdsb2JhbE9iamVjdD4gbV9pbmN1YmF0aW5nV3JhcHBlcjsKKyAg
ICBTY3JpcHRNb2R1bGVMb2FkZXIqIG1fcGFyZW50TG9hZGVyOworICAgIEpTQzo6V2VhazxKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPiBtX3dyYXBwZXIgeyB9OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyIHsgfTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MDZmZDRjMzg1ZGY2YTkxMzFiMzdhYjk4MjkxMDZh
MzJkZmMwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCitbCisgICAgRXhwb3NlZD1TaGFkb3dSZWFs
bSwKKyAgICBKU0xlZ2FjeVBhcmVudD1KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLAorICAg
IEdsb2JhbD1TaGFkb3dSZWFsbSwKKyAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKK10gaW50
ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgeworICByZWFkb25seSBhdHRyaWJ1dGUgU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSBzZWxmOworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MmJiZjQzOWFhYTQ4ZmMxMTVjZGVhMzViMTEwZGEz
ZmY5MDRlOGJkLi5lYjM0MTg4YWY3ZDFkMTFmOTc1OTVmNTc3NGE5OWE2MzRjOTlhODI5IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjEtMDEtMTEgIEpvc2VwaCBHcmllZ28gIDxqZ3JpZWdvQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1NoYWRvdyBSZWFsbXNdIFVzZSBXZWJDb3JlIG1vZHVsZSBsb2FkZXJzIGZvciBz
aGFkb3cgcmVhbG0gaW1wb3J0VmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNDE1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5OgorICAg
ICAgICAoQmluZGluZ3NUZXN0cy5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeSk6Cisg
ICAgICAgIChCaW5kaW5nc1Rlc3RzLm1haW4pOgorCiAyMDIyLTAxLTEwICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVthMTF5XSBXVFI6
IGRvIG5vdCBzaG93IGh0bWwtaWQgYW5kIHRvb2xraXQgYXR0cmlidXRlcyBpbiB0ZXN0IHJlc3Vs
dHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQppbmRleCAwMjJkMDllODY5
MzExZjAwNDQzNDA5NjljYTM0OTg1Y2I3MjBlYTU3Li5jZThiNTA2MzEwZjE5N2QyNTNhNWI1MTg1
OWYxN2Q2ZTMxOWQ1YTdiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5
CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICBleGl0
X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9jb2RlCiAKLSAgICBkZWYg
Z2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBz
dXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5k
ZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFyZWR3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lf
ZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhZG93
cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICBpZGxf
ZmlsZXNfbGlzdCA9IHRlbXBmaWxlLm1rc3RlbXAoKQogICAgICAgICBmb3IgaW5wdXRfZmlsZSBp
biBvcy5saXN0ZGlyKGlucHV0X2RpcmVjdG9yeSk6CiAgICAgICAgICAgICAobmFtZSwgZXh0ZW5z
aW9uKSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKQEAgLTk0LDYgKzk0LDcgQEAgY2xh
c3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcycsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsCiAgICAgICAgICAg
ICAgICAnLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlJywgd2luZG93X2NvbnN0cnVjdG9yc19maWxl
LAogICAgICAgICAgICAgICAgJy0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywg
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCisgICAgICAgICAgICAgICAnLS1z
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHNoYWRvd3JlYWxtZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1kZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUnLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwKQEAgLTE5OSw2ICsyMDAsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBw
bGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlbmFtZSA9ICdTdXBwbGVtZW50YWxEZXBl
bmRlbmNpZXMuZGVwJwogICAgICAgICBkb21fd2luZG93X2NvbnN0cnVjdG9yc19maWxlbmFtZSA9
ICdET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
JworICAgICAgICBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9
ICdTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgc2VydmljZXdvcmtlcmds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsJwpAQCAtMjEzLDYgKzIxNSw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHN1
cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19k
aXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZW5hbWUpCiAgICAgICAgIHdpbmRv
d19jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qg
c2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBkb21fd2luZG93X2NvbnN0
cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVz
dWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKQorICAgICAgICBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGVuYW1lKQogICAgICAgICBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNl
dF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qg
c2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzZXJ2aWNld29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBzaGFyZWR3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBp
ZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzaGFyZWR3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCkBAIC0yMjEsNyArMjI0LDcgQEAg
Y2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYu
cmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVz
ZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwg
c3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAg
ICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVj
dG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxl
X2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNl
cnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlv
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBh
IHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRpbC5ybXRy
ZWUod29ya19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzMyw2ICsyMzYs
OCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNz
ZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9i
YWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2ds
b2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgc2hhZG93cmVhbG1n
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgorICAgICAgICAgICAgICAgIGFsbF90
ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFu
Z2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIGRlZGlj
YXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAg
ICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVj
dF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVj
dG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMDlhMzI1ZmQxYmIxZjcwMTUxZWFlYWVmNTIwYTBmNTc4NDU2NjBhMS4uOWE5ODk1YmE5
MDQ0ZjNmYjcxNDlkNmYzNDRkODM1ZWRmMDc3ZmUzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisy
MDIxLTEyLTEwICBKb3NlcGggR3JpZWdvICA8amdyaWVnb0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBtb2R1bGUgbG9hZGVycyBmb3Igc2hhZG93IHJl
YWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQxNTUKKworICAgICAgICBJbXByb3ZlIHRlc3QgY292ZXJhZ2UgYSBiaXQgZm9y
IHNoYWRvdyByZWFsbXMsIGVzcGVjaWFsbHkgcnVubmluZworICAgICAgICBuZXN0ZWQsIGluIHdv
cmtlciBjb250ZXh0cywgb3IgaW4gaWZyYW1lcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICoganMv
c2NyaXB0LXRlc3RzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKGFz
c2VydF9jbG9zZWRfb3BlbmVyKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0KToKKyAg
ICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuanM6IEFkZGVk
LgorICAgICAgICAod3JhcHBlZExvZyk6CisgICAgICAgIChwcm9taXNlX3Rlc3QuYXN5bmMgdCk6
CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2V4YW1wbGUtbW9kdWxlLmpzOiBBZGRlZC4KKyAg
ICAgICAgKGNoZWNrKToKKyAgICAgICAgKGxvZ19lcXVhbCk6CisgICAgICAgIChjaGVja19uZXN0
ZWQpOgorICAgICAgICAoc2V0VmFsdWUpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zaGFk
b3ctcmVhbG0td29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydF9lcXVhbHMpOgorICAg
ICAgICAoYXN5bmMgdGVzdCk6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisKIDIwMjItMDEtMTAg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgQ29sb3IgNF0g
Q1NTIGNvbG9yKCkgZnVuY3Rpb24gc2hvdWxkIG5vdCBjbGFtcCBjaGFubmVscyB0byB0aGUgMC0x
IHJhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjY5ODA0OTczZmRlYWFjY2ZiNGRhMzNiNjNmZGI5MzgyNWNmNzUx
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVo
YXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFsdWF0ZQorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworCitQQVNTIHdpbmRvdy5jbG9zZSgpIGFmZmVjdHMgbmFtZSB0YXJn
ZXRpbmcgaW1tZWRpYXRlbHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVh
bG0tZXZhbHVhdGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODk5NDcxNDU3OWU3ZTg1NjAzNTdlZGMyNTU4MmRmN2E4NDkwZjAxMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRv
d1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjID0u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dS
ZWFsbS5wcm90b3R5cGUuZXZhbHVhdGUiKTsKKworICAgIGZ1bmN0aW9uIGFzc2VydF9jbG9zZWRf
b3BlbmVyKHcsIGNsb3NlZCwgb3BlbmVyKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMody5jbG9z
ZWQsIGNsb3NlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMody5vcGVuZXIsIG9wZW5lcik7Cisg
ICAgfQorCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgICBjb25zdCBvcGVu
ZWUgPSB3aW5kb3cub3BlbigiIiwgImdyZWF0bmFtZSIpOworICAgICAgICBjb25zdCBvdXRlclNo
YWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisKKyAgICAgICAgLy8gc2V0dXAgcmVhbG0g
bmVzdGVkIGluIG91dGVyU2hhZG93UmVhbG0KKyAgICAgICAgb3V0ZXJTaGFkb3dSZWFsbS5ldmFs
dWF0ZSgidmFyIGlubmVyUmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsiKTsKKyAgICAgICAgb3V0
ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgidmFyIGNhbGxJbklubmVyID0gaW5uZXJSZWFsbS5ldmFs
dWF0ZShcIihjYikgPT4gY2IoKVwiKTsiKTsKKworICAgICAgICBjb25zdCBjYWxsSW5OZXN0ZWRS
ZWFsbSA9IG91dGVyU2hhZG93UmVhbG0uZXZhbHVhdGUoIihjYikgPT4gY2FsbEluSW5uZXIoY2Ip
Iik7CisKKyAgICAgICAgLy8gY2FsbCBjbG9zZSB3aW5kb3cgdHdvIGxldmVscyBkZWVwCisgICAg
ICAgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9wZW5lZSwgZmFsc2UsIHNlbGYpOworICAgICAgICBj
YWxsSW5OZXN0ZWRSZWFsbSgoKSA9PiBvcGVuZWUuY2xvc2UoKSk7CisgICAgICAgIC8vIG9wZW5l
ZS5jbG9zZSgpCisgICAgICAgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9wZW5lZSwgdHJ1ZSwgc2Vs
Zik7CisgICAgfSwgIndpbmRvdy5jbG9zZSgpIGFmZmVjdHMgbmFtZSB0YXJnZXRpbmcgaW1tZWRp
YXRlbHkiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLWRldGFjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtZGV0YWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNmUyYzhlMWJjNmYwM2QzZjcyZTE5NTI5NTc0YmNlMDQyMjc5NGE1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLWRldGFjaC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2Yg
U2hhZG93IFJlYWxtIG9iamVjdHMgdGhhdCBlc2NhcGUgdGhlaXIgb3JpZ2luYXRpbmcgaWZyYW1l
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitbb2JqZWN0IFdpbmRvd10KK1tvYmpl
Y3QgV2luZG93XQorZGV0YWNoaW5nIGlmcmFtZQorW29iamVjdCBTaGFkb3dSZWFsbV0KK2Ryb3Bw
aW5nIHJlYWxtIHZhbHVlCitQQVNTICgpID0+IGNoZWNrRm4yKHdyYXBwZWRMb2coInNoYWRvd1Jl
YWxtIikpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUt
ZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtZGV0YWNoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDQ2NTFmMDg5N2QyNjM3ZDQxYWVlOGE0MzBiYmU4Y2EyZmNiOWM0ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1kZXRh
Y2guaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNl
U2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZy
YW1lIHNyYz0icmVzb3VyY2VzL3NoYWRvdy1yZWFsbS1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8
c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisgZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNo
YWRvdyBSZWFsbSBvYmplY3RzIHRoYXQgZXNjYXBlIHRoZWlyIG9yaWdpbmF0aW5nIGlmcmFtZSIp
OworIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworIGZ1bmN0aW9uIHdyYXBwZWRMb2co
cHJlZml4KSB7CisgICAgIHJldHVybiBmdW5jdGlvbiAobXNnKSB7CisgICAgICAgICBkZWJ1Zyhw
cmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICAgfTsKKyB9CisKKyBsZXQgZnJhbWUgPSB3aW5kb3cu
ZnJhbWVzWzBdOworIGRlYnVnKGZyYW1lKTsKKyBmcmFtZS5vbmxvYWQgPSBhc3luYyAoKSA9PiB7
CisgICAgIGRlYnVnKGZyYW1lKTsKKyAgICAgbGV0IHJlYWxtID0gZnJhbWUucmVhbG07CisgICAg
IGRlYnVnKCJkZXRhY2hpbmcgaWZyYW1lIik7CisgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpZnJhbWUiKVswXS5yZW1vdmUoKQorICAgICAkdm0uZ2MoKTsKKyAgICAgZnJhbWUg
PSBudWxsOworICAgICBkZWJ1ZyhyZWFsbSk7CisgICAgIGNvbnN0IGNoZWNrRm4yID0gYXdhaXQg
cmVhbG0uaW1wb3J0VmFsdWUoIi4vcmVzb3VyY2VzL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNr
Iik7CisgICAgIGRlYnVnKCJkcm9wcGluZyByZWFsbSB2YWx1ZSIpCisgICAgIHJlYWxtID0gbnVs
bDsKKyAgICAgJHZtLmdjKCk7CisgICAgIHNob3VsZEJlKCgpID0+IGNoZWNrRm4yKHdyYXBwZWRM
b2coInNoYWRvd1JlYWxtIikpLAorICAgICAgICAgICAgICAidHJ1ZSIpOworICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyB9CisKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2FuZGJveGVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5kYm94ZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMyOGFmYTYzZTJjMjgxZTBlNDA1ZGIwMGE5ZmE0NTVmZjM1ZTg5OTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2FuZGJv
eGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0IHRvIGVuc3VyZSBTaGFkb3dS
ZWFsbXMgcnVubmluZyBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZG8gbm90IGFjY2VzcyB0aGUgcGFy
ZW50IHdpbmRvdyBvYmplY3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2F0dGFj
aGVkIGZyYW1lczogMQorZGV0YWNoaW5nIGlmcmFtZQorZHJvcHBpbmcgcmVhbG0gdmFsdWUKK1BB
U1MgKCkgPT4gY2hlY2tGbjIod3JhcHBlZExvZygic2hhZG93UmVhbG0iKSkgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5kYm94ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5kYm94ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZWIxNmQ2YTllNmI4ZWZkZTMwZDk3MjQ2ZTFmNzA1N2Q4Zjg4YTBhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLXNhbmRib3hlZC5odG1sCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFs
bT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPGlmcmFtZSBzcmM9InJlc291
cmNlcy9zaGFkb3ctcmVhbG0taWZyYW1lLmh0bWwiIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiPjwv
aWZyYW1lPgorPHNjcmlwdD4KKyBkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgU2hhZG93UmVh
bG1zIHJ1bm5pbmcgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGRvIG5vdCBhY2Nlc3MgdGhlIHBhcmVu
dCB3aW5kb3cgb2JqZWN0Iik7Cisgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgZnVu
Y3Rpb24gd3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpIHsK
KyAgICAgICAgIGRlYnVnKHByZWZpeCArICI6ICIgKyBtc2cpOworICAgICB9OworIH0KKworIGRl
YnVnKCJhdHRhY2hlZCBmcmFtZXM6ICIgKyB3aW5kb3cuZnJhbWVzLmxlbmd0aCk7CisgbGV0IGZy
YW1lID0gd2luZG93LmZyYW1lc1swXTsKKyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGFzeW5jICgpID0+IHsKKyAgICAgbGV0IHJlYWxtID0gZnJhbWUucmVhbG07CisgICAgIGRl
YnVnKCJkZXRhY2hpbmcgaWZyYW1lIik7CisgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJpZnJhbWUiKVswXS5yZW1vdmUoKQorICAgICAkdm0uZ2MoKTsKKyAgICAgZnJhbWUgPSBu
dWxsOworICAgICBjb25zdCBjaGVja0ZuMiA9IGF3YWl0IHJlYWxtLmltcG9ydFZhbHVlKCIuL3Jl
c291cmNlcy9leGFtcGxlLW1vZHVsZS5qcyIsICJjaGVjayIpOworICAgICBkZWJ1ZygiZHJvcHBp
bmcgcmVhbG0gdmFsdWUiKQorICAgICByZWFsbSA9IG51bGw7CisgICAgICR2bS5nYygpOworICAg
ICBzaG91bGRCZSgoKSA9PiBjaGVja0ZuMih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwKKyAg
ICAgICAgICAgICAgInRydWUiKTsKKyAgICAgZmluaXNoSlNUZXN0KCk7CisgfSk7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxt
LWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlt
cG9ydFZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjE0YzU1NWE4MDhiN2IyZmZiN2Zj
NjE3OWY3MDc0NzQ4NTc5YjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hh
ZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNP
TEUgTUVTU0FHRTogNDIKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRv
d1JlYWxtLnByb3RvdHlwZS5pbXBvcnRWYWx1ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBjb3Jy
ZWN0IGdsb2JhbDogT0sKK3NoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZhbCB1c2VzIGNvcnJl
Y3QgZ2xvYmFsOiBPSworCitQQVNTIGNhbiBpbXBvcnQgbW9kdWxlIGluIGEgc2hhZG93IHJlYWxt
CitQQVNTIGNhbiBuZXN0IHJlYWxtcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFk
b3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1w
b3J0VmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2E4YzY1MzAyNzNjMzMzM2M1ZWEwMTg5OWM1MjM2
NmQxZDQzNDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0t
aW1wb3J0VmFsdWUuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRp
b25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZp
b3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5pbXBvcnRWYWx1ZSIpOworCisgICAgZnVuY3Rp
b24gd3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpIHsK
KyAgICAgICAgICAgIGRlYnVnKHByZWZpeCArICI6ICIgKyBtc2cpOworICAgICAgICB9OworICAg
IH0KKworICAgIGNvbnN0IG1vZHVsZV9wYXRoID0gIi4vcmVzb3VyY2VzL2V4YW1wbGUtbW9kdWxl
LmpzIjsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBvdXRlclNo
YWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0
IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUobW9kdWxlX3BhdGgsICJjaGVjayIpOworICAg
IGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7
CisKKyAgICBjb25zdCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBvcnQobW9kdWxlX3BhdGgpOworICAg
IGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCB0cnVlLCAiYmxvb3AiKTsKKyAgICBvdXJN
b2R1bGUuc2V0VmFsdWUoNDIpOworICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCA0
Mik7CisKKyAgICBjb25zdCBpbXBvcnRlZFZhbCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUobW9kdWxlX3BhdGgsICJ2YWx1ZSIpOworICAgIGFzc2VydF9lcXVhbHMoaW1wb3J0
ZWRWYWwsIHRydWUpOworICAgIGNvbnN0IHNldFZhbHVlSW1wb3J0ZWQgPSBhd2FpdCBvdXRlclNo
YWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAic2V0VmFsdWUiKTsKKyAgICBzZXRW
YWx1ZUltcG9ydGVkKDEwMCk7CisgICAgY29uc3QgaW1wb3J0ZWRWYWwyID0gYXdhaXQgb3V0ZXJT
aGFkb3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwgInZhbHVlIik7CisgICAgYXNzZXJ0
X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7CisgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUu
dmFsdWUsIDQyKTsKKyAgICB9LCAiY2FuIGltcG9ydCBtb2R1bGUgaW4gYSBzaGFkb3cgcmVhbG0i
KTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgICAgY29uc3Qgb3V0ZXJT
aGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICBjb25zdCBjaGVja0ZuID0g
YXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwgImNoZWNrX25l
c3RlZCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93
UmVhbG0iKSksIHRydWUpOworICAgIH0sICJjYW4gbmVzdCByZWFsbXMiKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0t
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJmNDQ5MTliMDNhODI0ZjE2NjQ1MGU4YmY3NzE4Yzcz
OTQ1MTAxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdv
cmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyB0aGF0IFNoYWRv
dyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRlIHdvcmtl
ciBjb250ZXh0cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29y
a2VyOiByZXNvdXJjZXMvc2hhZG93LXJlYWxtLXdvcmtlci5qcworUEFTUyBbV29ya2VyXSBpbXBv
cnQtdmFsdWUKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBjYWxsaW5nIG5lc3RlZCByZWFsbSB3cmFw
cGVyIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitbV29ya2VyXSBzaGFkb3dSZWFsbTogbmVzdGVk
IHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKK1BBU1MgW1dvcmtlcl0gbmVzdGVk
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjgxMTk4NTY5MmRk
OTk1ZTc2MmVhNjEzODE5NzJkYmU4NmZiMzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IFNoYWRvdyBSZWFsbSBBUElzIGFy
ZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRlIHdvcmtlciBjb250ZXh0cyIpOwor
ICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RhcnRXb3JrZXIoInJlc291cmNlcy9zaGFkb3ctcmVh
bG0td29ya2VyLmpzIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2V4
YW1wbGUtbW9kdWxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2V4YW1wbGUtbW9kdWxl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUzMmViYzdhNTAzMGVkODA0MDEwMzJiMDgzOTUyOTM0OWU1MjhiZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1
bGUuanMKQEAgLTAsMCArMSwzMiBAQAordmFyIHZhbHVlID0gdHJ1ZTsKKwordmFyIGNoZWNrID0g
ZnVuY3Rpb24obG9nKSB7CisgICAgaWYgKE9iamVjdC5nZXRQcm90b3R5cGVPZihnbG9iYWxUaGlz
KSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgeworICAgICAgICBsb2coImdsb2JhbFRoaXMgcHJvdG90
eXBlIGlzIE9iamVjdC5wcm90b3R5cGUiKTsKKyAgICAgICAgbG9nKE9iamVjdC5nZXRQcm90b3R5
cGVPZihnbG9iYWxUaGlzKS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gbG9nX2VxdWFsKGxvZywgbXNnLCB4
LCB5KSB7CisgICAgY29uc3QgcmVzdWx0ID0geCA9PSB5OworICAgIGxvZyhgJHttc2d9OiAke3Jl
c3VsdCA/ICdPSycgOiAnRkFJTEVEJ31gKTsKK30KKwordmFyIGNoZWNrX25lc3RlZCA9IGZ1bmN0
aW9uKGxvZykgeworICAgIGNvbnN0IHNyID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgZ2xvYmFs
VGhpcy54ID0gMTAwOworICAgIHNyLmV2YWx1YXRlKGBnbG9iYWxUaGlzLnggPSA0MmApOworICAg
IGNvbnN0IGYgPSBzci5ldmFsdWF0ZShgKCkgPT4ge3JldHVybiBnbG9iYWxUaGlzLng7fWApOwor
ICAgIGxvZ19lcXVhbChsb2csICJjYWxsaW5nIG5lc3RlZCByZWFsbSB3cmFwcGVyIHVzZXMgY29y
cmVjdCBnbG9iYWwiLCA0MiwgZigpKTsKKyAgICBsb2dfZXF1YWwobG9nLCAibmVzdGVkIHJlYWxt
IGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBzci5ldmFsdWF0ZShgZ2xvYmFsVGhpcy54
YCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2YXIgc2V0VmFsdWUgPSBmdW5jdGlvbiAobmV3
VmFsdWUpIHsKKyAgICBjb25zb2xlLmxvZyhuZXdWYWx1ZSk7CisgICAgdmFsdWUgPSBuZXdWYWx1
ZTsKK30KKworZXhwb3J0IHsgdmFsdWUsIHNldFZhbHVlLCBjaGVjaywgY2hlY2tfbmVzdGVkIH07
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hhZG93LXJlYWxtLWlmcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3NoYWRvdy1yZWFsbS1pZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYjFlMzdiN2Q1NjhiZjI3OTFkMjExODc3ZTFkY2ZlMjVlNjg5ZGNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3NoYWRvdy1yZWFsbS1p
ZnJhbWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPjwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgIHdp
bmRvdy5yZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICAgd2luZG93LnBhcmVudC5w
b3N0TWVzc2FnZSgnaGknLCAiKiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hhZG93LXJlYWxt
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0td29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhMTNlNTBlMWFkMWMxYzQzYzI3YTAxMDAzZGY5OWU0ZGY0N2UzNzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hhZG93LXJlYWxt
LXdvcmtlci5qcwpAQCAtMCwwICsxLDUxIEBACitpbXBvcnRTY3JpcHRzKCIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiKTsKKworZnVuY3Rpb24gYXNzZXJ0X2VxdWFscyh4LCB5KSB7Cisg
ICAgaWYgKHggPT09IHkpIHJldHVybjsKKyAgICB0aHJvdyBuZXcgRXJyb3IoYGFzc2VydGlvbiBm
YWlsdXJlOiBleHBlY3RlZCAke3h9LCBnb3QgJHt5fWApOworfQorCitmdW5jdGlvbiB3cmFwcGVk
TG9nKHByZWZpeCkgeworICAgIHJldHVybiBmdW5jdGlvbiAobXNnKSB7CisgICAgICAgIGRlYnVn
KHByZWZpeCArICI6ICIgKyBtc2cpOworICAgIH07Cit9CisKKworYXN5bmMgZnVuY3Rpb24gdGVz
dChrZXksIGYpIHsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBmKCk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICB0ZXN0RmFpbGVkKGtleSArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgdGVzdFBhc3NlZChrZXkpOworfQorCisoYXN5bmMgZnVuY3Rpb24g
KCkgeworICAgIGF3YWl0IHRlc3QoImltcG9ydC12YWx1ZSIsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICBj
b25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFt
cGxlLW1vZHVsZS5qcyIsICJjaGVjayIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4o
d3JhcHBlZExvZygic2hhZG93UmVhbG0iKSksIHRydWUpOworCisgICAgICAgIGNvbnN0IG91ck1v
ZHVsZSA9IGF3YWl0IGltcG9ydCgiLi9leGFtcGxlLW1vZHVsZS5qcyIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwgImJsb29wIik7CisgICAgICAgIG91ck1v
ZHVsZS5zZXRWYWx1ZSg0Mik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVl
LCA0Mik7CisKKyAgICAgICAgY29uc3QgaW1wb3J0ZWRWYWwgPSBhd2FpdCBvdXRlclNoYWRvd1Jl
YWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwsIHRydWUpOworICAgICAgICBjb25zdCBzZXRWYWx1
ZUltcG9ydGVkID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxl
LW1vZHVsZS5qcyIsICJzZXRWYWx1ZSIpOworICAgICAgICBzZXRWYWx1ZUltcG9ydGVkKDEwMCk7
CisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsMiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3VyTW9k
dWxlLnZhbHVlLCA0Mik7CisgICAgfSk7CisKKyAgICBhd2FpdCB0ZXN0KCJuZXN0ZWQiLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVh
bG0oKTsKKyAgICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1w
b3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2tfbmVzdGVkIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7
CisgICAgfSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449668</attachid>
            <date>2022-01-21 10:00:09 -0800</date>
            <delta_ts>2022-01-21 13:04:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20220121130008.patch</filename>
            <type>text/plain</type>
            <size>121116</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDM3NzliZTk4NzIyNjA1ZDMxZTVmYWZkMjg1NTQwODllZDJhMmYyLi44MGRjMmYyNWQ1ZDAwNDZh
OGNmNjgwNDA2ZjU5MDRkNzI0MzI2Yzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMi0wMS0xNiAgTGF1cm8gTW91cmEg
IDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggQysrMjAgYnVpbGQgd2FybmluZ3Mg
d2l0aCBHQ0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmM2Y5NDhmMjc3MGYxMDQyNDc5MDJjN2NhYTQ2MDBhNzNj
OTkwNDhmLi43YmE0Y2UzODVjYjE5NTY2MjZiMGI5ZTg4MjE2ZmQyYzY3OTYxZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMjItMDEtMjEgIEpvc2VwaCBHcmllZ28gIDxqZ3JpZWdv
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NoYWRvdyBSZWFsbXNdIFVzZSBXZWJDb3JlIG1vZHVs
ZSBsb2FkZXJzIGZvciBzaGFkb3cgcmVhbG0gaW1wb3J0VmFsdWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDE1NQorCisgICAgICAgIEludHJvZHVj
ZXMgYSBuZXcgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB0aGF0IHNlcnZlcyBhcyB0aGUKKyAgICAg
ICAgaW1wbGVtZW50YXRpb24gb2YgYSBnbG9iYWwgb2JqZWN0IGZvciBjb2RlIHJ1bm5pbmcgaW4g
YSBzaGFkb3cgcmVhbG0tLXRvCisgICAgICAgIGltcGxlbWVudCB0aGUgcmVxdWlyZW1lbnRzIG9m
IEpTKERPTSlHbG9iYWxPYmplY3QsIGl0IHNpbXBseSBkZWxlZ2F0ZXMKKyAgICAgICAgYWxsIG1l
dGhvZHMgdG8gdGhlIGluY3ViYXRpbmcgKGVuY2xvc2luZykgcmVhbG0sIHdpdGggdGhlIGV4Y2Vw
dGlvbiBvZgorICAgICAgICBtZXRob2RzIHJlbGF0ZWQgdG8gbW9kdWxlIGxvYWRpbmcsIGZvciB3
aGljaCBpdCB1c2VzIGEgY3VzdG9tCisgICAgICAgIFNjcmlwdE1vZHVsZUxvYWRlciBjb25maWd1
cmVkIHRvIHVzZSB0aGUgYXBwcm9wcmlhdGUgZ2xvYmFsIG9iamVjdCB3aGVuCisgICAgICAgIGV2
YWx1YXRpbmcgbW9kdWxlIGNvZGUuCisKKyAgICAgICAgQWxzbyByZXF1aXJlcyBzb21lIGFkanVz
dG1lbnQgdG8gdGhlIElETC1kcml2ZW4gY29kZSBnZW5lcmF0aW9uLS10aGUKKyAgICAgICAgY3Vy
cmVudCBkcmFmdCBzcGVjIHJlcXVpcmVzIHRoYXQgdGhlIGdsb2JhbCBvYmplY3QgZm9yIHRoZSBz
aGFkb3cgcmVhbG0KKyAgICAgICAgYmUgYW4gb3JkaW5hcnkgb2JqZWN0LS1TaGFkb3dSZWFsbUds
b2JhbFNjb3BlIGlzIG9wdGVkIG91dCBvZiBjb2RlZ2VuCisgICAgICAgIGZvciBwcm9kdWNpbmcg
YSBjdXN0b20gcHJvdG90eXBlLCBidXQgY2FuIHN0aWxsIGhhdmUgQVBJcyBpbmNsdWRlZCBhcwor
ICAgICAgICBwcm9wZXJ0aWVzIGlmIHRoZXkgYXJlIG1hcmtlZCBhcyBgRXhwb3NlZD1TaGFkb3dS
ZWFsbWAgb3IgYEV4cG9zZWQ9KmAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbAorICAgICAg
ICAgICAgICAganMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbAorICAgICAgICAgICAgICAg
anMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NR2xvYmFsT2JqZWN0OjpkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVtb3Rl
RE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp2aXNpdENo
aWxkcmVuSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmluY3ViYXRpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6ZGVzdHJveSk6CisgICAgICAg
IChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c1JpY2hTb3Vy
Y2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6
OnNob3VsZEludGVycnVwdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmphdmFTY3JpcHRS
dW50aW1lRmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6c2NyaXB0RXhlY3V0aW9uU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2U6OnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cXVldWVNaWNyb3Rh
c2tUb0V2ZW50TG9vcCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3Vic3BhY2VGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6d3JhcHBlZCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjppbmN1
YmF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnNo
YWRvd1JlYWxtTG9hZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxv
YWRlcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNWTUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChJc0RPTUdsb2JhbE9iamVjdCk6
CisgICAgICAgIChTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSk6CisgICAgICAgIChH
ZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25kaXRpb25h
bFN0cmluZ0ZvckV4cG9zZWQpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgIChHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRl
Q29uc3RydWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3By
ZXByb2Nlc3MtaWRscy5wbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGw6IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwOgorICAgICAgICAq
IGRvbS9Qcm9taXNlUmVqZWN0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
Ojppc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmguCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlOjp0cnlDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6U2hhZG93UmVhbG1HbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6d3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOjp+U2hhZG93UmVhbG1HbG9iYWxTY29wZSk6CisgICAgICAgICog
cGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmguCisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpzZWxmKToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TaGFkb3dSZWFsbU9iamVjdC5oLgorCiAyMDIyLTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBV
VUlEIGluc3RlYWQgb2YgYSBzdHJpbmcgZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2Jh
bE9iamVjdC5jcHAKaW5kZXggOTc4ZjI3M2RmOGFmYTc4MDkzOGQ1ZDRmN2QwYTY2ZDY4OGY1YzQx
NC4uM2RjZWE2Y2EyNmUyOGJkZTM4ZjRiNjkzOTQ2ZWUyOTIwMzA3YTRkYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKQEAgLTUzLDYgKzUz
LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1
YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGlu
c3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3QKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9ydFVuY2F1Z2h0RXhj
ZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9u
KiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJ
R2xvYmFsT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9i
amVjdC5tbQppbmRleCAzZmI3Nzg0ZWM1N2QxNjRkNWM2Nzc3MDE5ZWZjMzJmZDhlZjJiNWY1Li42
NTM4ZDMzNmM4ODk0MWUxMzc3ZGVjMGRhOGU0ZmJkNzE5N2Q2NzRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KQEAgLTcxLDYgKzcxLDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAg
ICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRp
YXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAog
dm9pZCBKU0FQSUdsb2JhbE9iamVjdDo6cmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9v
cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggOGY4YzVmMzY5ZDZlYTUyMDg4MTc4YjdjYzg1YjcyNDc1MTQ3
NGNhZi4uZGYxODBmYmFkMWM3OTFlYzczY2Y2YjljYTNmNGI0NDI4YzQ2YmE4NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTc1OCw2ICs3NTgsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSBHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVs
bHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWlu
ZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpbmF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyODY0YTE5NWY1NDJlMDk0MzZhZmY3ODMx
MWM0OTZiNTM1MDIxMzdhLi42ZWQ4ZDIwYjBkM2Q3OGJjZGQxN2U0MGVhYjA3MTk4YmFhMGI4MGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCkBAIC01MzcsNiArNTM3LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNH
bG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwg
Ly8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAg
IG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxt
R2xvYmFsT2JqZWN0CiB9OwogCiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAw
M2VhM2E2YzMxNjllNTdlZGY3NzAxMWNiMDhiMjYxOGEwNTBmOTk0Li5lMmIwZWI4MjI0MjY5MWUw
MDBjMjRiYTQwNmQzMDY3MTc0YjMzYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI2NCw2ICsyNjQsOSBAQCBzdHJ1Y3QgR2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgewogCiAgICAgdHlwZWRlZiBKU1Byb21pc2UqICgqSW5zdGFudGlh
dGVTdHJlYW1pbmdQdHIpKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSwgSlNPYmplY3QqKTsKICAg
ICBJbnN0YW50aWF0ZVN0cmVhbWluZ1B0ciBpbnN0YW50aWF0ZVN0cmVhbWluZzsKKworICAgIHR5
cGVkZWYgSlNHbG9iYWxPYmplY3QqICgqRGVyaXZlU2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0
cikoSlNHbG9iYWxPYmplY3QqKTsKKyAgICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9u
UHRyIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxP
YmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDc0LDYgKzEw
NzcsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5m
byhjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBK
U0dsb2JhbE9iamVjdCogZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21N
ZXRob2RUYWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxs
KCkpLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIH0KKwog
ICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVj
dCopIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3Jp
cHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBzdGF0aWMgUnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNH
bG9iYWxPYmplY3QqKSB7IHJldHVybiBSdW50aW1lRmxhZ3MoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApp
bmRleCAxNmU4YWFjM2RhZjMxY2FiZjZiMTg5ZWFkMWIzMzE2YzRhYzE1N2Y3Li5jODg2YmFjMDYz
YjQyYzY3MmYyZmVjOTUxODFmMTAxN2I2NmFmMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApAQCAtNTMs
NyArNTMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aFNoYWRvd1Jl
YWxtQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZwogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBTdHJ1Y3R1cmUqIHNoYWRvd1JlYWxtU3RydWN0dXJlID0gU2hh
ZG93UmVhbG1PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnNoYWRvd1JlYWxtUHJvdG90eXBlKCkpOwotICAgIEpTT2JqZWN0KiBzaGFkb3dSZWFs
bU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNoYWRvd1JlYWxtU3RydWN0
dXJlLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIEpTT2Jq
ZWN0KiBzaGFkb3dSZWFsbU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNo
YWRvd1JlYWxtU3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoc2hhZG93UmVhbG1PYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKaW5kZXggYTI1YTQwMDgwOTMwMDgx
ZjAwOGU2M2UxMTY5ZGNmNzdlNzQzOGZjOC4uOGJmZjMxZTkyOWYxMzhmYTM0M2VkNGIxYjI4Nzkw
NjBmNDY5MDNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hh
ZG93UmVhbG1PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIHZvaWQgU2hhZG93UmVhbG1P
YmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikK
IAogREVGSU5FX1ZJU0lUX0NISUxEUkVOKFNoYWRvd1JlYWxtT2JqZWN0KTsKIAotU2hhZG93UmVh
bG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKQorU2hh
ZG93UmVhbG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBTaGFk
b3dSZWFsbU9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U2hhZG93
UmVhbG1PYmplY3Q+KHZtKSkgU2hhZG93UmVhbG1PYmplY3Qodm0sIHN0cnVjdHVyZSk7CiAgICAg
b2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUodm0sIEpT
R2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgbWV0aG9kVGFibGUp
OwotICAgIG9iamVjdC0+bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIGdsb2JhbE9iamVj
dCk7CisgICAgSlNHbG9iYWxPYmplY3QqIHNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0ID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZXJpdmVTaGFkb3dSZWFsbUdsb2Jh
bE9iamVjdChnbG9iYWxPYmplY3QpOworICAgIG9iamVjdC0+bV9nbG9iYWxPYmplY3Quc2V0KHZt
LCBvYmplY3QsIHNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gb2JqZWN0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmpl
Y3QuaAppbmRleCBkMDg4ZmY3ODQyZTIwYWU1NDI1MmY2ZGIwNWQ0YzdlODRmOWViMTVjLi5hZGIy
ZWQwMjJhMzcwYzQwMzkyNDkzN2I1YWE3YjUzYjk4ZjI3ZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0gICAgc3RhdGljIFNoYWRvd1JlYWxt
T2JqZWN0KiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSopOworICAgIHN0YXRpYyBTaGFkb3dSZWFsbU9iamVjdCogY3JlYXRlKFZNJiwgU3RydWN0
dXJlKiwgSlNHbG9iYWxPYmplY3QqKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QoKSB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDk3OGEzODY4YThmNDc1MjdmMjFiMjAwM2ZhODliNjg2ZWRhYTU4ODUuLmE3M2YwOGRh
MjdmMmZmNjQ3NTE4ZDM5ZTg0ZDUwMTk1ZGJiNzc0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xMjA4LDYgKzEyMDgsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIHBh
Z2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAogICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwK
ICAgICBwYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKKyAgICBwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuaWRsCiAgICAgcGFnZS9TaGFyZURhdGEuaWRsCiAgICAgcGFnZS9TdHJ1Y3R1cmVkU2Vy
aWFsaXplT3B0aW9ucy5pZGwKICAgICBwYWdlL1VuZG9JdGVtLmlkbApAQCAtMjA4OCw2ICsyMDg5
LDcgQEAgc2V0KElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09V
UkNFU19ESVJ9L0RPTUlzb1N1YnNwYWNlcy5oKQogc2V0KENPTlNUUlVDVE9SU19IRUFERVJfRklM
RSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vRE9NQ29uc3RydWN0b3JzLmgpCiBzZXQo
V0lORE9XX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9E
T01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Xb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoU0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoU0hBUkVEV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKQEAgLTIyNzIsMTIg
KzIyNzQsMTMgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29yZUJpbmRpbmdzCiAgICAgR0VORVJB
VE9SIEpTCiAgICAgU1VQUExFTUVOVEFMX0RFUEZJTEUgJHtTVVBQTEVNRU5UQUxfREVQRU5ERU5D
WV9GSUxFfQogICAgIFBQX0VYVFJBX09VVFBVVAotICAgICAgICAke0lTT19TVUJTUEFDRVNfSEVB
REVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RP
UlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KKyAgICAke0lTT19TVUJTUEFD
RVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfSAke1dJTkRPV19DT05T
VFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtT
SEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSAke0RFRElDQVRFRFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgIFBQX0VYVFJBX0FSR1MKICAgICAg
ICAgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICR7SVNPX1NVQlNQQUNFU19IRUFERVJfRklMRX0K
ICAgICAgICAgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICR7Q09OU1RSVUNUT1JTX0hFQURFUl9G
SUxFfQogICAgICAgICAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJHtXSU5ET1dfQ09OU1RSVUNU
T1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tc2hhZG93UmVh
bG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSAke0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfQogICAgICAgICAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JHtTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0t
c2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0hBUkVEV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBhOTNmYjExY2UwNWM3OTNjZjNmODBkNjY5MmJm
ZWJlYWQ2YzlhYjM1Li4yYWExNjZmZDg2MTEzMWYzNTJhMDJkMTc0NTEzYzgzMDdmZGM1OWM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAg
LTE0MjcsNiArMTQyNyw3IEBAICQoUFJPSkVDVF9ESVIpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TY3JvbGxPcHRpb25zLmlkbAogJChQUk9KRUNU
X0RJUikvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1NldHRp
bmdzLnlhbWwKKyQoUFJPSkVDVF9ESVIpL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwK
ICQoUFJPSkVDVF9ESVIpL3BhZ2UvU2hhcmVEYXRhLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9T
dHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2UvVW5kb0l0
ZW0uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDg1NzhhOTBhYmM2YWNkNjlmM2JmMzNiMzc5MDY1YTZiYzU5NDJlNTIuLjU4MTg0
YTM0ZmMwZDFlNGIyODFhMmY3YTZhNTc3NGViNDZjZmY0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNDc1LDYgKzI0NzUsOCBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VX
b3JrZXJVcGRhdGVWaWFDYWNoZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFk
b3dSb290LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTaGFkb3dSb290LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU2hhZG93Um9vdEluaXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBlNmZiYjliNzhlYmRiYTdmYzA5MzU1YzRjMmU3Y2NhMzYxYTY2ZDY3Li5kZGI2ZTA2OThjYzlk
NjhhNzRlOTlhZGFmYTgzNDFkNTNlZjU3ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTEyNTcsNiArMTI1Nyw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFn
ZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9u
cy5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFn
ZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9V
bmRvSXRlbS5pZGwgXApAQCAtMjA3OCw2ICsyMDc5LDcgQEAgSVNPX1NVQlNQQUNFU19IRUFERVJf
RklMRSA9IERPTUlzb1N1YnNwYWNlcy5oCiBDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUgPSBET01D
b25zdHJ1Y3RvcnMuaAogV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFID0gRE9NV2luZG93Q29uc3Ry
dWN0b3JzLmlkbAogV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUgPSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogREVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwKIFNIQVJFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBAIC0yMDkzLDYgKzIwOTUsNyBAQCBJRExf
SU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSBc
CiAgICAgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IFwKQEAgLTIxMDMsNyArMjEwNiw3IEBAIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1
YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVf
UEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19G
SUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQ
RU5ERU5DSUVTKQogCSQoc2hlbGwgZWNobyAkKEpTX0JJTkRJTkdfSURMUykgfCB0ciAiICIgIlxu
IiA+IElETEZpbGVOYW1lc0xpc3QudHh0KQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZP
Uk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0IElETEZp
bGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxF
KSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lf
RklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklM
RSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSAt
LXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgJChTSEFSRURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1F
TlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVG
SU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1l
c0xpc3QudHh0IC0taWRsQXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1
cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkg
LS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1j
b25zdHJ1Y3RvcnNIZWFkZXJGaWxlICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRv
d0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEUpIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFET1dS
RUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWRlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1wYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChB
VURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zdXBwbGVtZW50YWxN
YWtlZmlsZURlcHMgJChTVVBQTEVNRU5UQUxfTUFLRUZJTEVfREVQUykKIAogIwogIyBFbWl0IHRo
ZSBydWxlcyB0byBnZW5lcmF0ZSBiaW5kaW5ncyBmcm9tIElETCBmaWxlcy4gTm90ZSB0aGF0IHRo
ZXJlIGFyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggODg5MGY4ZGJhNDc0YzM5MmMzNzMyOThkYTc1
ODBmNzE5Y2U1YzNkZS4uMTJjYjZlNDJmYWMyMDgxNWUxOTBkYjdkYmI3M2Y1OGMxZWIxYTQ3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC00NTgsNiArNDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCiAgICAg
YmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5oCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmgKKyAgICBiaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlLmgKICAgICBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uaAogICAgIGJpbmRp
bmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaAogICAgIGJpbmRpbmdzL2pzL0pTV2luZG93
UHJveHkuaApAQCAtMTE0NCw2ICsxMTQ1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmgKICAgICBwYWdlL1NlY3Vy
aXR5UG9saWN5LmgKICAgICBwYWdlL1NldHRpbmdzQmFzZS5oCisgICAgcGFnZS9TaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmgKICAgICBwYWdlL1NoYXJlRGF0YS5oCiAgICAgcGFnZS9Tb2NrZXRQcm92
aWRlci5oCiAgICAgcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggM2ZhMGJiZDk4MjRmOWE4NmExMmZlMzg3OWFiZGUwZDNlNDg1OWFmNS4uZDZkMDQ0NGFh
YjlkMjJmY2VhNjNkOTgwMDAxNTMzM2Q3Mzc3ZjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYyMSw2
ICs2MjEsNyBAQCBiaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9q
cy9KU1dlYlhSVmlld0N1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCiBi
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKK2JpbmRpbmdzL2pzL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwCiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC0xNzkyLDYgKzE3OTMs
NyBAQCBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3Bw
CiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcAogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCitwYWdlL1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCiBwYWdlL1NoYXJlRGF0YVJlYWRlci5jcHAKIHBhZ2Uv
U29ja2V0UHJvdmlkZXIuY3BwCiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApAQCAtMzg2NSw2
ICszODY3LDcgQEAgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCiBKU1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uY3BwCiBKU1NlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5jcHAKIEpT
U2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5j
cHAKIEpTU2hhZG93Um9vdC5jcHAKIEpTU2hhZG93Um9vdEluaXQuY3BwCiBKU1NoYWRvd1Jvb3RN
b2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGIwODFiNmExOWQzZGQ1ZmI2N2ZiMTZlN2JmYTljNzU4NmZmOWYxYWQuLmQw
MjBkOTU2Y2FlNzgzM2VlYzlkMzlmM2NkYWFiN2Q3NjkzMGNkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDQsNiArMTM0
NCw4IEBACiAJCTQ2N0E2OERBMjc1RUE5OUMwMDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjdBNjhE
MjI3NUVBOThBMDA5QjMxQzUgLyogU2hhcmVkV29ya2VyTWFuYWdlci5oICovOyB9OwogCQk0Njgy
RDIwMDFGNzk3ODMwMDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMw
MEM4NjNEQiAvKiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAv
KiBET01SZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4M0RGNDAyNzY3REY5
ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODNERjNFMjc2N0RGOTgwMDdEMDBD
OCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggKi87IH07CisJCTQ2ODNERjQxMjc2
N0U5MUEwMDdEMDBDOCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzREYzQjI3NjdERjI2MDA3RDAwQzgg
LyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09y
aWdpbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2ODhFRTNBMjZERDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFD
MDA2RTAzMTQgLyogQnJvYWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2Fz
dENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0NjlENzdCODI3MDE2MjUxMDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5RDc3QjYyNzAx
NjI1MDAwMTQyRkE2IC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTIzMSw2ICs5MjMzLDExIEBACiAJCTQ2
ODM0NERDMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUmVjdExp
c3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERDFFRERGQTVGMDBC
Nzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdExpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5
NUIgLyogRE9NUmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmVjdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjNCMjc2N0RG
MjYwMDdEMDBDOCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4
M0RGM0MyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NjgzREYzRDI3NjdERjk4MDA3RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RG
M0UyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1
QzQgLyogQ3Jvc3NPcmlnaW5Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIg
LyogSlNCYXNlQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFz
ZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
OUNDQ0ZBMjY5RDAyMDIwMDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJyb2FkY2FzdENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjQyMjAsNiArMjQyMjcsOSBAQAogCQkJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAv
KiBTZXR0aW5ncy55YW1sICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0
aW5nc0Jhc2UuY3BwICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5n
c0Jhc2UuaCAqLywKKwkJCQk0NjgzREYzOTI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5jcHAgKi8sCisJCQkJNDY4M0RGM0IyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaCAqLywKKwkJCQk0NjgzREYzQzI3NjdERjI2MDA3RDAwQzggLyog
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwgKi8sCiAJCQkJMURDNTU0MDAyMTFCQThDODAwNEI3
ODBFIC8qIFNoYXJlRGF0YS5oICovLAogCQkJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBT
aGFyZURhdGEuaWRsICovLAogCQkJCTFBMkM2NjcxMjQyQUZFRjcwMDMwNTVFQyAvKiBTaGFyZURh
dGFSZWFkZXIuY3BwICovLApAQCAtMjkyNTMsNiArMjkyNjMsOCBAQAogCQkJCTkzQjcwRDUwMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQk0NkJD
QkJDMTIwODUwMDgwMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLywKIAkJ
CQk0NkJDQkJDMDIwODUwMDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8s
CisJCQkJNDY4M0RGM0QyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UuY3BwICovLAorCQkJCTQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlLmggKi8sCiAJCQkJOTMxQUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8q
IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaCAqLywKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIz
RTUgLyogSlNXaW5kb3dQcm94eS5jcHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1
IC8qIEpTV2luZG93UHJveHkuaCAqLywKQEAgLTM1NjE1LDYgKzM1NjI3LDcgQEAKIAkJCQk1MTgy
QzI1QzFGMzE0M0NEMDA1OUJBN0MgLyogSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUYxNzUwMzFGMzU4QjNCMDBDNzQ5NTAgLyogSlNTZXJ2aWNlV29y
a2VyVXBkYXRlVmlhQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUIzN0NFMUY5N0NDRDIw
MEI2NTUyMyAvKiBKU1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ2ODNERjQwMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNT
aGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5QzFEQzI2MjBCMDBCODBCNDgg
LyogSlNTaGFkb3dSb290TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1
QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM3MTE0LDYg
KzM3MTI3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0Rh
dGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFk
b3dQc2V1ZG9JZHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBD
OCAvKiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2
NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDU2
QTdBQzgyNTZDNEY0ODAwMkY5RERDIC8qIFNoYWRvd1Jvb3RJbml0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NkRGRjQ5ODFEQzI2MDMxMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IDUyNTEwYzMwODE4ZjBjYTkxNmE4ODQzNzdkMjI0YTFhYmE3OTViODUuLmI0
NWE0NTkwNDliMDAzMTRmNGNiOTM2YzdkYWE3MmU2MzFhMTE5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ0LDExICs0NCwx
NCBAQAogI2luY2x1ZGUgIkpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNS
ZWFkYWJsZVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTUmVtb3RlRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZS5oIgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNs
dWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTV3JpdGFibGVTdHJlYW0u
aCIKICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVkQ2xvbmUuaCIK
ICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCkBAIC0yNjYsNiArMjY5LDggQEAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdAogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFz
ZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKGluaGVyaXRzPEpT
UmVtb3RlRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IGlmIChpbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKKyAgICAg
ICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhp
cyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNXb3JrZXJH
bG9iYWxTY29wZUJhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAg
ICBpZiAoaW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKQEAgLTUwNiw2
ICs1MTEsOCBAQCBzdGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRNb2R1bGVMb2FkZXIo
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHJldHVybiAmZG9j
dW1lbnQtPm1vZHVsZUxvYWRlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Cisg
ICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZT4odm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwogICAg
IGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0pKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxK
U1dvcmtlckdsb2JhbFNjb3BlQmFzZT4odm0pKQpAQCAtNTcwLDYgKzU3Nyw1NCBAQCBKU0M6OkpT
T2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoSlNDOjpKUwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgp
KTsKIH0KIAorSlNDOjpKU0dsb2JhbE9iamVjdCogSlNET01HbG9iYWxPYmplY3Q6OmRlcml2ZVNo
YWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K3sKKyAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIGF1dG8gZG9tR2xv
YmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAg
ICBhdXRvIGNvbnRleHQgPSBkb21HbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIC8vIFNhbWUtb3Jp
Z2luIGlmcmFtZXMgcHJlc2VudCBhIGRpZmZpY3VsdCBjaXJjdW1zdGFuY2UgYmVjYXVzZSB0aGUK
KyAgICAgICAgLy8gc2hhZG93IHJlYWxtIGdsb2JhbCBvYmplY3QgY2Fubm90IHJldGFpbiB0aGUg
aW5jdWJhdGluZyByZWFsbSdzCisgICAgICAgIC8vIGdsb2JhbCBvYmplY3QgKHRoYXQgd291bGQg
YmUgYSByZWZjb3VudCBsb29wKTsgYnV0LCBzYW1lLW9yaWdpb3JpZ2luYWxXb3JsZCk7CisgICAg
ICAgIC8vIGlmcmFtZXMgY2FuIGNyZWF0ZSBvYmplY3RzIHRoYXQgb3V0bGl2ZSB0aGVpciBnbG9i
YWwgb2JqZWN0LgorICAgICAgICAvLworICAgICAgICAvLyBPdXIgc29sdXRpb24gaXMgdG8gd2Fs
ayB1cCB0aGUgcGFyZW50IHRyZWUgb2YgZG9jdW1lbnRzIGFzIGZhciBhcworICAgICAgICAvLyBw
b3NzaWJsZSB3aGlsZSBzdGlsbCBzdGF5aW5nIGluIHRoZSBzYW1lIG9yaWdpbiB0byBpbnN1cmUg
d2UgZG9uJ3QKKyAgICAgICAgLy8gYWxsb3cgdGhlIFNoYWRvd1JlYWxtIHRvIGZldGNoIG1vZHVs
ZXMgbWFzcXVlcmFkaW5nIGFzIHRoZSB3cm9uZworICAgICAgICAvLyBvcmlnaW4gd2hpbGUgYXZv
aWRpbmcgYW55IGxpZmV0aW1lIGlzc3VlcyAoc2luY2UgdGhlIHRvcG1vc3QgZG9jdW1lbnQKKyAg
ICAgICAgLy8gd2l0aCBhIGdpdmVuIHdyYXBwZXIgd29ybGQgc2hvdWxkIG91dGxpdmUgb3RoZXIg
b2JqZWN0cyBpbiB0aGF0CisgICAgICAgIC8vIHdvcmxkKQorICAgICAgICBhdXRvIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOworICAgICAgICBhdXRvIGNvbnN0JiBvcmln
aW5hbE9yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOworICAgICAgICBhdXRvJiBv
cmlnaW5hbFdvcmxkID0gZG9tR2xvYmFsT2JqZWN0LT53b3JsZCgpOworCisgICAgICAgIHdoaWxl
ICghZG9jdW1lbnQtPmlzVG9wRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgYXV0byBjYW5kaWRh
dGVEb2N1bWVudCA9IGRvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpOworCisgICAgICAgICAgICBp
ZiAoIWNhbmRpZGF0ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkRvbWFp
bihvcmlnaW5hbE9yaWdpbikpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
IGRvY3VtZW50ID0gY2FuZGlkYXRlRG9jdW1lbnQ7CisgICAgICAgICAgICBkb21HbG9iYWxPYmpl
Y3QgPSBjYW5kaWRhdGVEb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCkuZ2xvYmFsT2JqZWN0KG9y
aWdpbmFsV29ybGQpOworICAgICAgICB9CisgICAgfQorCisgICAgQVNTRVJUKGRvbUdsb2JhbE9i
amVjdCk7CisgICAgYXV0byBzY29wZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnRyeUNyZWF0
ZShkb21HbG9iYWxPYmplY3QsIHNjcmlwdE1vZHVsZUxvYWRlcihkb21HbG9iYWxPYmplY3QpKS5y
ZWxlYXNlTm9uTnVsbCgpOworCisgICAgYXV0byBzdHJ1Y3R1cmUgPSBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlNDOjpqc051bGwoKSk7Cisg
ICAgYXV0byBwcm94eVN0cnVjdHVyZSA9IEpTUHJveHk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVs
bHB0ciwgSlNDOjpqc051bGwoKSk7CisgICAgYXV0byBwcm94eSA9IEpTUHJveHk6OmNyZWF0ZSh2
bSwgcHJveHlTdHJ1Y3R1cmUpOworICAgIGF1dG8gd3JhcHBlciA9IEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoc2NvcGUpLCBwcm94eSk7CisK
KyAgICB3cmFwcGVyLT5zZXRQcm90b3R5cGVEaXJlY3Qodm0sIHdyYXBwZXItPm9iamVjdFByb3Rv
dHlwZSgpKTsKKyAgICBwcm94eS0+c2V0VGFyZ2V0KHZtLCB3cmFwcGVyKTsKKworICAgIHJldHVy
biB3cmFwcGVyOworfQorCisKIEpTRE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQp
CiB7CiAgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGY0ZDg2NWQ5YTAzMjdiOGFkOTRm
N2IwZGY5M2NmYzBkNTdjZThiNTguLjBhNThlN2U5ZDY3MWJlZGY3NjZmZjJiODM2NzUwNDEyNGNi
MWQxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5j
dGlvbnMmIGJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpIHsgcmV0dXJuIG1fYnVpbHRpbkludGVy
bmFsRnVuY3Rpb25zOyB9CiAKICAgICBzdGF0aWMgdm9pZCByZXBvcnRVbmNhdWdodEV4Y2VwdGlv
bkF0RXZlbnRMb29wKEpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qKTsKKyAgICBzdGF0
aWMgSlNDOjpKU0dsb2JhbE9iamVjdCogZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QoSlND
OjpKU0dsb2JhbE9iamVjdCopOwogCiAgICAgdm9pZCBjbGVhckRPTUd1YXJkZWRPYmplY3RzKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCmluZGV4IGUxZDc4MTcwZGFiMjExNDRkYTI3YWQyNjRjZmExYTVhZjMyZDEzOTguLjRkOTI3
MTc5MWFlYmEyNzY1YmJmNDIzNTNlYmY1ODc0YWUwYzQ0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtOTUsNiArOTUsNyBAQCBjb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwKICAgICBudWxscHRyLAogI2VuZGlmCisgICAg
JmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0CiB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpT
RE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2lu
ZG93PiYmIHdpbmRvdywgSlNXaW5kb3dQcm94eSogcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcAppbmRleCBhYjNmYWM2
NzEzMDRmOGM3YmNhNTkwMzAzMmVkNmM2MGJkYzFmYTRiLi5hNGQ3MTVmNzA4YzYwYzAyODY1Nzlj
ZjE1OTAzNTc3MDBiN2Q1NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgY29uc3QgR2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUgSlNSZW1vdGVET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlID0KICAgICBudWxscHRyLCAvLyBkZWZhdWx0TGFuZ3VhZ2UKICAgICBudWxs
cHRyLCAvLyBjb21waWxlU3RyZWFtaW5nCiAgICAgbnVsbHB0ciwgLy8gaW5zdGFudGlhdGVTdHJl
YW1pbmcKKyAgICBudWxscHRyLCAvLyBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsK
IAogSlNSZW1vdGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFJlbW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpT
V2luZG93UHJveHkqIHByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDJi
OTIxYjFlOWJlY2NlOTNiNzdmMzNmODAzZGIyOTNjYzRmZDJhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UuaCIKKworI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUg
IkpTTWljcm90YXNrQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNQcm94eS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01p
Y3JvdGFzay5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiwg
JkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSkgfTsKKworY29uc3QgR2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSA9IHsKKyAgICAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywKKyAgICAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0LAorICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAorICAg
ICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAorICAgICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRC
ZWZvcmVUaW1lb3V0LAorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVs
ZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVMb2Fk
ZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUs
CisgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAorICAgICZyZXBvcnRVbmNhdWdodEV4Y2Vw
dGlvbkF0RXZlbnRMb29wLAorICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCisgICAg
JnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKKyAgICAmcmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZh
bCwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisgICAgJmNvbXBpbGVTdHJlYW1pbmcsCisgICAgJmluc3RhbnRpYXRlU3RyZWFt
aW5nLAorI2Vsc2UKKyAgICBudWxscHRyLAorICAgIG51bGxwdHIsCisjZW5kaWYKKyAgICAmZGVy
aXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QsCit9OworCitKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBs
KQorICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgbm9ybWFsV29ybGQodm0p
LCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKKyAgICAsIG1fd3JhcHBlZChXVEZNb3ZlKGlt
cGwpKQoreworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpCit7CisgICAgbV9wcm94eS5zZXQodm0sIHRo
aXMsIHByb3h5KTsKKyAgICBtX3dyYXBwZWQtPm1fd3JhcHBlciA9IEpTQzo6V2Vhayh0aGlzKTsK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgbV9wcm94eS5nZXQoKSk7CisgICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4K
K3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwoSlND
ZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2UqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFz
ZSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5m
bygpKTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAg
IHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fcHJveHkpOworfQorCitERUZJTkVfVklTSVRf
Q0hJTERSRU4oSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSk7CisKK1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBpbmN1YmF0aW5nUmVhbG0oKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOworfQorCitjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZ1JlYWxtKCkgY29uc3QKK3sKKyAgICBhdXRv
IGluY3ViYXRpbmdXcmFwcGVyID0gbV93cmFwcGVkLT5tX2luY3ViYXRpbmdXcmFwcGVyLmdldCgp
OworICAgIEFTU0VSVChpbmN1YmF0aW5nV3JhcHBlcik7CisgICAgcmV0dXJuIGluY3ViYXRpbmdX
cmFwcGVyOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3ko
SlNDZWxsKiBjZWxsKQoreworICAgIHN0YXRpY19jYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2UqPihjZWxsKS0+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6fkpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UoKTsKK30KKworYm9vbCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgYXV0byBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0ID0ganNDYXN0PGNvbnN0IEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAg
ICByZXR1cm4gaW5jdWJhdGluZ0dsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUo
KS0+c3VwcG9ydHNSaWNoU291cmNlSW5mbygKKyAgICAgICAgaW5jdWJhdGluZ0dsb2JhbE9iamVj
dAorICAgICk7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxk
SW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0
byBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0ID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAgICByZXR1cm4gaW5j
dWJhdGluZ0dsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50
ZXJydXB0U2NyaXB0KAorICAgICAgICBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0CisgICAgKTsKK30K
KworYm9vbCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3Jp
cHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0
byBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0ID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAgICByZXR1cm4gaW5j
dWJhdGluZ0dsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50
ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCgKKyAgICAgICAgaW5jdWJhdGluZ0dsb2JhbE9iamVj
dAorICAgICk7Cit9CisKK1J1bnRpbWVGbGFncyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
OjpqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7
CisgICAgYXV0byBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0ID0ganNDYXN0PGNvbnN0IEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAgICBy
ZXR1cm4gaW5jdWJhdGluZ0dsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
amF2YVNjcmlwdFJ1bnRpbWVGbGFncygKKyAgICAgICAgaW5jdWJhdGluZ0dsb2JhbE9iamVjdAor
ICAgICk7Cit9CisKK0pTQzo6U2NyaXB0RXhlY3V0aW9uU3RhdHVzIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QqIG93bmVyKQoreworICAgIGF1dG8gaW5jdWJhdGlu
Z0dsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xv
YmFsT2JqZWN0KS0+aW5jdWJhdGluZ1JlYWxtKCk7CisgICAgcmV0dXJuIGluY3ViYXRpbmdHbG9i
YWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnNjcmlwdEV4ZWN1dGlvblN0YXR1
cygKKyAgICAgICAgaW5jdWJhdGluZ0dsb2JhbE9iamVjdCwgb3duZXIKKyAgICApOworfQorCit2
b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnJlcG9ydFZpb2xhdGlvbkZvclVuc2Fm
ZUV2YWwoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTU3RyaW5nKiBt
c2cpCit7CisgICAgYXV0byBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsK
KyAgICBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5y
ZXBvcnRWaW9sYXRpb25Gb3JVbnNhZmVFdmFsKAorICAgICAgICBpbmN1YmF0aW5nR2xvYmFsT2Jq
ZWN0LCBtc2cKKyAgICApOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6
OnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoSlNHbG9iYWxPYmplY3QmIG9iamVjdCwgUmVmPEpT
Qzo6TWljcm90YXNrPiYmIHRhc2spCit7CisgICAgYXV0byBpbmN1YmF0aW5nR2xvYmFsT2JqZWN0
ID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPigmb2JqZWN0KS0+aW5jdWJh
dGluZ1JlYWxtKCk7CisgICAgaW5jdWJhdGluZ0dsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUoKS0+cXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcCgKKyAgICAgICAgKmluY3ViYXRp
bmdHbG9iYWxPYmplY3QsIFdURk1vdmUodGFzaykKKyAgICApOworfQorCitKU1ZhbHVlIHRvSlMo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
U2hhZG93UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9iYWxTY29wZSkKK3sKKyAgICByZXR1cm4g
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCByZWFsbUdsb2JhbFNjb3BlKTsKK30KKworSlNWYWx1
ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9i
YWxTY29wZSkKK3sKKyAgICBBU1NFUlQocmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCkpOworICAg
IHJldHVybiAmcmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCktPnByb3h5KCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWJiODQzOWIw
NTQ0MDc4OTdkN2E5YzkwZjE5ZTQ3NDQ5OWNmNjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCkBAIC0w
LDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB1c2luZyBC
YXNlID0gSlNET01HbG9iYWxPYmplY3Q7CisKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6
SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gKm1fd3JhcHBlZDsgfQorCisgICAgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QqIGluY3ViYXRpbmdSZWFsbSgpIGNvbnN0OworICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBpbmN1YmF0aW5nUmVhbG0oKTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdGF0
aWMgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlOworCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2Ny
aXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRJ
bnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICBzdGF0aWMgSlNDOjpSdW50aW1lRmxhZ3MgamF2YVNjcmlwdFJ1bnRpbWVGbGFncyhjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6U2NyaXB0RXhlY3V0aW9u
U3RhdHVzIHNjcmlwdEV4ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpK
U09iamVjdCopOworICAgIHN0YXRpYyB2b2lkIHF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoSlND
OjpKU0dsb2JhbE9iamVjdCYsIFJlZjxKU0M6Ok1pY3JvdGFzaz4mJik7CisgICAgc3RhdGljIHZv
aWQgcmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU1N0cmluZyopOworCitwcm90ZWN0ZWQ6CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxT
Y29wZT4mJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNDOjpKU1Byb3h5
Kik7CisKKyAgICBERUNMQVJFX1ZJU0lUX0NISUxEUkVOOworCitwcml2YXRlOgorICAgIFJlZlB0
cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBtX3dyYXBwZWQ7Cit9OworCitpbmxpbmUgSlNET01H
bG9iYWxPYmplY3QqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmluY3ViYXRpbmdSZWFs
bSgpCit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjb25zdF9j
YXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPih0aGlzKS0+aW5jdWJhdGlu
Z1JlYWxtKCkpOworfQorCisvLyBSZXR1cm5zIGEgSlNXb3JrZXJHbG9iYWxTY29wZSBvciBqc051
bGwoKQorLy8gQWx3YXlzIGlnbm9yZXMgdGhlIGV4ZWNTdGF0ZSBhbmQgcGFzc2VkIGdsb2JhbE9i
amVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSBpcyBpdHNlbGYgYSBnbG9iYWxPYmplY3QgYW5k
IHdpbGwgYWx3YXlzIHVzZSBpdHMgb3duIHByb3RvdHlwZSBjaGFpbi4KK0pTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiBzY29wZSkgeyByZXR1cm4gc2NvcGUgPyB0b0pTKGxl
eGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6anNOdWxsKCk7
IH0KK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlJik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSogc2NvcGUpIHsg
cmV0dXJuIHNjb3BlID8gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCAqc2NvcGUpIDogSlNDOjpq
c051bGwoKTsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggYjlm
YTQ5MThkMmQ1YTkwYjcwYjI0MjdkNDE0OGM1NWZmNzgyN2RiZC4uNzczMDFhNTE1OTk1OTJkZTg3
YjA3NjY1YjY3MTZlYWU1MGMwZmZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNzAsNiArNzAsNyBAQCBj
b25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19n
bG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRp
ZgorICAgIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2U6OkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+JiYgaW1wbCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDI5MTQxOTM0MmIwOTIzNjljOTc4MmVlMzJmNDljYzM4ODE4ODM1NTgu
LmE3OThlNDI2YWJmMjJlNzg1ZGJlM2FiYTdlNTA4YjNjYWIyNTFiNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNw
cApAQCAtNjYsNiArNjYsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgIG51bGxwdHIs
CiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0
LAogfTsKIAogSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxXb3JrbGV0
R2xvYmFsU2NvcGU+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFkOTNjZTA5MDJjNTdiMDU1NDg0YmI1NDM0NDE3
Mzg5MzJkNDZiYTMuLjJmZDk2NWNmODVmOTg2OWQ1Y2U0MTZmYWE5NTAzMzUwZjkxM2JkMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2Rl
LmgiCisjaW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlN1YnJl
c291cmNlSW50ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2lu
Y2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgpAQCAtNzQsNiArNzUsMTMgQEAgU2Ny
aXB0TW9kdWxlTG9hZGVyOjp+U2NyaXB0TW9kdWxlTG9hZGVyKCkKICAgICAgICAgbG9hZGVyLT5j
bGVhckNsaWVudCgpOwogfQogCitVbmlxdWVSZWY8U2NyaXB0TW9kdWxlTG9hZGVyPiBTY3JpcHRN
b2R1bGVMb2FkZXI6OnNoYWRvd1JlYWxtTG9hZGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIHJlYWxt
R2xvYmFsKSBjb25zdAoreworICAgIGF1dG8gbG9hZGVyID0gbWFrZVVuaXF1ZVJlZjxTY3JpcHRN
b2R1bGVMb2FkZXI+KG1fY29udGV4dCwgbV9vd25lclR5cGUpOworICAgIGxvYWRlci0+bV9zaGFk
b3dSZWFsbUdsb2JhbCA9IHJlYWxtR2xvYmFsOworICAgIHJldHVybiBsb2FkZXI7Cit9CisKIHN0
YXRpYyBib29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiB7
CiAgICAgcmV0dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1
bGVLZXkuaXNVbmRlZmluZWQoKTsKQEAgLTI0NCw3ICsyNTIsOSBAQCBKU0M6OkpTVmFsdWUgU2Ny
aXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9i
amVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEpT
Qzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBpcyBh
biBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6
RG9jdW1lbnQpIHsKKyAgICBpZiAobV9zaGFkb3dSZWFsbUdsb2JhbCkKKyAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBtb2R1bGVSZWNvcmQtPmV2YWx1YXRlKG1fc2hhZG93UmVhbG1H
bG9iYWwsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9kZSkpOworICAgIGVsc2UgaWYgKG1fb3duZXJU
eXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKICAgICAgICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJj
ZVVSTCwgKm1vZHVsZVJlY29yZCwgYXdhaXRlZFZhbHVlLCByZXN1bWVNb2RlKSk7CiAgICAgfSBl
bHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVs
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmgKaW5kZXggZTgyYThiYjQzMzcxZWE2Y2FiOGZjZmE4NDI0ZDg3ZWIzYzk4NjMxOC4uYmEwYzI2
MjJjMzRhYzA3NGQ2NmI5ODUwNWRmNzk0NzM3MDU1ZjcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKQEAgLTU1LDYgKzU1LDggQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgT3duZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxlTG9hZGVyKCk7CiAKKyAgICBVbmlx
dWVSZWY8U2NyaXB0TW9kdWxlTG9hZGVyPiBzaGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiByZWFsbUdsb2JhbCkgY29uc3Q7CisKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50aWZpZXIg
cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAgIEhh
c2hTZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKICAgICBPd25lclR5cGUg
bV9vd25lclR5cGU7CisgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbV9zaGFkb3dSZWFsbUdsb2Jh
bCB7IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKaW5kZXggNmQ0
NmIxNTQzNTYxNjUyNDUwMTc5YjA3NDdjZGI4NzRiMmVkZWQ3MS4uNDliMDJiZjBlNzYwMzBiMDZm
ZDU5YTc2ZmU1NjA1NDcxYTJmNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNSZW1vdGVET01XaW5k
b3cuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUg
IkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyR2xv
YmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNXb3Jr
ZXJHbG9iYWxTY29wZS5oIgpAQCAtNjgsNiArNjksNyBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNs
aWVudERhdGEoVk0mIHZtKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRv
dyhKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1JlbW90ZURPTVdpbmRvdz4oKSkKICAgICAs
IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6QXJnczxKU1dvcmtlckdsb2JhbFNjb3BlPigpKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JK
U1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGU+KCkpCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwgbV9oZWFw
Q2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6QXJnczxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgwMzY2
YTBjN2Y3MjIwMjNmNzkzODE0YWY2ZWE1NzExZGE5ODQ3NzcuLjM3YzlhMWU2NjRkZjg1ZmJiZGU2
MzMxNjkxMTQ4YzdjNjI2Njg3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAg
SlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1JlbW90ZURPTVdpbmRvdzsK
ICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFs
U2NvcGU7CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlOworICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxU
eXBlRm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDA5NGIxYmZkMzg1OWJiMjI2NDRiYWNl
MjA1ODMyZTZkNjFhNGQyYzQuLjJlN2M3Yzg5OWViYmY1OTNhMTdlZTZkZWM4YmM1NWI2NjhlOGZj
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC03NjYsNyArNzY2LDcgQEAgc3ViIEdldEN1c3RvbUlzUmVhY2hhYmxlCiBz
dWIgSXNET01HbG9iYWxPYmplY3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAg
cmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFj
ZS0+dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVH
ZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2Nv
cGUiKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKKyAg
ICByZXR1cm4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJm
YWNlLT50eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ciIHx8ICRjb2RlR2VuZXJhdG9yLT5J
bmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29k
ZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxT
Y29wZSIpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUiIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlRlc3RHbG9iYWxPYmplY3QiOwogfQog
CiBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCkBAIC03ODEsNiArNzgxLDIwIEBA
IHN1YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKICAgICByZXR1cm4gSXNET01HbG9i
YWxPYmplY3QoJGludGVyZmFjZSk7CiB9CiAKK3N1YiBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFBy
b3RvdHlwZQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKworICAgIHJldHVybiAkaW50
ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCgpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEg
IlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiOworfQorCitzdWIgQ3JlYXRlTmVlZHNKU1Byb3h5Cit7
CisgICAgbXkgKCRjb2RlR2VuZXJhdG9yLCAkaW50ZXJmYWNlKSA9IEBfOworCisgICAgcmV0dXJu
ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFs
U2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwg
IldvcmtsZXRHbG9iYWxTY29wZSIpOworfQorCiBzdWIgR2VuZXJhdGVJbmRleGVkR2V0dGVyCiB7
CiAgICAgbXkgKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW5kZXhFeHBy
ZXNzaW9uKSA9IEBfOwpAQCAtMjg3Nyw3ICsyODkxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIHByb3h5KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4i
KTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVy
ZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYg
KENyZWF0ZU5lZWRzSlNQcm94eSgkY29kZUdlbmVyYXRvciwgJGludGVyZmFjZSkpIHsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpT
Qzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGlt
cGwsIEpTQzo6SlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNs
YXNzTmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1l
Pih2bSkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKTtcbiIpOwpA
QCAtMjkxOSw3ICsyOTMzLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgJHN0cnVjdHVyZUZs
YWdzeyJKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEpTQzo6SW1wbGVtZW50c0RlZmF1bHRI
YXNJbnN0YW5jZSJ9ID0gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsKICAgICAg
ICAgCiAgICAgIyBQcm90b3R5cGUKLSAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2JhbE9iamVjdFBy
b3RvdHlwZSgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgewor
ICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8
IFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBwcm90b3R5cGUoSlND
OjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG4iKTsKICAgICB9CkBAIC0zMTgzLDcgKzMxOTcs
NyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIENvbnN0cnVjdG9yCiAgICAgaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJSZW1vdGVET01X
aW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShK
U0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8JGltcGxUeXBlPiYmLCBKU1dpbmRvd1Byb3h5
Kik7XG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2Uo
JGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0g
ZWxzaWYgKENyZWF0ZU5lZWRzSlNQcm94eSgkY29kZUdlbmVyYXRvciwgJGludGVyZmFjZSkpIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKEpTQzo6Vk0mLCBK
U0M6OlN0cnVjdHVyZSosIFJlZjwkaW1wbFR5cGU+JiYpO1xuIik7CiAgICAgfSBlbHNpZiAoIU5l
ZWRzSW1wbGVtZW50YXRpb25DbGFzcygkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9i
amVjdCYpO1xuXG4iKTsKQEAgLTMxOTMsNyArMzIwNyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1l
IGVxICJSZW1vdGVET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNXaW5kb3dQcm94eSopO1xuIik7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2Us
ICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmIChDcmVh
dGVOZWVkc0pTUHJveHkoJGNvZGVHZW5lcmF0b3IsICRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlND
OjpKU1Byb3h5Kik7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpO1xuIik7CkBAIC0zOTcyLDYg
KzM5ODYsOCBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmdGb3JF
eHBvc2VkCiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzRG9jdW1lbnQoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJXb3JrZXIiKSB7CiAg
ICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigiIC4g
JGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzV29ya2Vy
R2xvYmFsU2NvcGUoKSIpOworICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJTaGFkb3dSZWFsbSIp
IHsKKyAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVsc2lmICgkZXhwb3NlZCBlcSAiV29y
a2xldCIpIHsKICAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+aXNXb3JrbGV0R2xvYmFsU2NvcGUoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJB
dWRpb1dvcmtsZXQiKSB7CkBAIC00NTExLDcgKzQ1MjcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAkaGFzaFNpemUrKzsKICAgICB9CiAKLSAgICBpZiAoISRpbnRlcmZh
Y2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKCFTaG91bGRVc2VPcmRpbmFyeU9iamVj
dFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkanVzdEdlbmVyYXRlVmFsdWVB
cnJheSA9ICFJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKIAogICAgICAgICAkb2JqZWN0
LT5HZW5lcmF0ZUhhc2hUYWJsZSgkY2xhc3NOYW1lLCAkaGFzaE5hbWUsICRoYXNoU2l6ZSwgXEBo
YXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLCBcJWNv
bmRpdGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsICRqdXN0R2VuZXJhdGVWYWx1ZUFy
cmF5KTsKQEAgLTQ1MjQsNyArNDU0MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtc
biIpOwogICAgIH0KIAotICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlKCRp
bnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAmJiAhJGludGVyZmFj
ZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVy
dHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkgJiYg
IVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgJHtjbGFz
c05hbWV9OjppbmZvKCksICR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7
XG4iKTsKIAogICAgICAgICBteSBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVzID0gQHJ1bnRpbWVF
bmFibGVkT3BlcmF0aW9uczsKQEAgLTQ2MDUsNyArNDYyMSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAKICAgICBhc3NlcnQoIkpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJ
VElPTigpIHJlcXVpcmVzIHN0cmluZ3MgdHdvIG9yIG1vcmUgY2hhcmFjdGVycyBsb25nIikgaWYg
bGVuZ3RoKCR2aXNpYmxlSW50ZXJmYWNlTmFtZSkgPCAyOwogCi0gICAgaWYgKCEkaW50ZXJmYWNl
LT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQ
cm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KQEAgLTQ2MzcsNyArNDY1Myw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpLCBwcm94eSlc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2Vu
ZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3Bl
IikpIHsKKyAgICAgIH0gZWxzaWYgKENyZWF0ZU5lZWRzSlNQcm94eSgkY29kZUdlbmVyYXRvciwg
JGludGVyZmFjZSkpIHsKICAgICAgICAgQWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJ
bkltcGwoJGludGVyZmFjZU5hbWUpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xh
c3NOYW1lfTo6JGNsYXNzTmFtZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGlt
cGxUeXBlPiYmIGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAk
cGFyZW50Q2xhc3NOYW1lKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpXG4iKTsKQEAgLTQ2
NTgsNyArNDY3NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNXaW5kb3dQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0sIHByb3h5KTtcblxuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2Vu
ZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3Bl
IikpIHsKKyAgICB9IGVsc2lmIChDcmVhdGVOZWVkc0pTUHJveHkoJGNvZGVHZW5lcmF0b3IsICRp
bnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFt
ZX06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7CkBAIC00NzU4LDcgKzQ3
NzQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHZtLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQod3JhcHBlZCgpLm1lbW9y
eUNvc3QoKSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRF
eHRyYU1lbW9yeUNvc3R9OwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAg
IHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9i
YWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQ
cm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09i
amVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CiAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CkBAIC03NTY1LDcgKzc1
ODEsNyBAQCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkb3V0
cHV0QXJyYXksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0gQF87CiAKLSAgICByZXR1cm4gaWYg
JGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisgICAgcmV0dXJuIGlmIFNob3VsZFVzZU9y
ZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgJHByb3RvdHlwZUNs
YXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCkBAIC03ODQyLDcgKzc4NTgsNyBA
QCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoISRnZW5lcmF0
aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uIGFuZCAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CiAg
ICAgICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+cGFyZW50VHlw
ZS0+bmFtZTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke3BhcmVu
dENsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTtcbiIpOwotICAg
IH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgfSBlbHNpZiAo
U2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4iKTsK
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsK
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2Jq
ZWN0UHJvdG90eXBlKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNWI4OTMxM2ZlNWNhZWZiODkxMmZiNDM2ZjE0
NzY4MmYwNDc1NzdiYS4uNzQxYTU4YjE5ZjEyOGRlNGYwOWIxY2I1NjZjZjUxYTkxZWQ3ZjhiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CiBteSAk
Y29uc3RydWN0b3JzSGVhZGVyRmlsZTsKIG15ICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlOwogbXkg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKK215ICRzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZTsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CkBAIC02
NSw3ICs2Niw4IEBAIG15IEBzdXBwb3J0ZWRHbG9iYWxDb250ZXh0cyA9ICgKICAgICAiRGVkaWNh
dGVkV29ya2VyIiwKICAgICAiU2VydmljZVdvcmtlciIsCiAgICAgIlBhaW50V29ya2xldCIsCi0g
ICAgIkF1ZGlvV29ya2xldCIKKyAgICAiQXVkaW9Xb3JrbGV0IiwKKyAgICAiU2hhZG93UmVhbG0i
LAogKTsKIAogIyBUb2dnbGUgdGhpcyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBmYXN0IHJlZ3VsYXIg
ZXhwcmVzc2lvbiBiYXNlZCAicGFyc2luZyIgdXNlZApAQCAtODIsNiArODQsNyBAQCBHZXRPcHRp
b25zKCdkZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ2NvbnN0cnVjdG9yc0hl
YWRlckZpbGU9cycgPT4gXCRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlLAogICAgICAgICAgICAnd2lu
ZG93Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUsCiAgICAg
ICAgICAgICd3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdzaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlPXMnID0+IFwkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAnc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZT1zJyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAg
ICAgICAgICAgICdzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCkBAIC05OCw2ICsxMDEs
NyBAQCBkaWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3JvcyB1c2luZyAtLWRlZmluZXMuJykg
dW5sZXNzIGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZp
bGUgdXNpbmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgk
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0
IGZpbGUgdXNpbmcgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3
aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxl
IHVzaW5nIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZp
bmVkKCR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNp
ZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1kZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qg
c3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNp
bmcgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRl
ZmluZWQoJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xMTMs
NiArMTE3LDcgQEAgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpOwogJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUgPSBDeWd3
aW5QYXRoSWZOZWVkZWQoJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUpOwogJHdpbmRvd0NvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwog
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkZGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0g
Q3lnd2luUGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsK
QEAgLTE1NCw2ICsxNTksNyBAQCBteSAlZGljdGlvbmFyeURlcGVuZGVuY2llczsKIG15ICVzdXBw
bGVtZW50YWxzOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgPSAiIjsKQEAgLTI3Miw2ICsyNzgsOCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAo
c29ydCBrZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICAgICAgICAgICAgICAgICAkd2luZG93Q29u
c3RydWN0b3JzQ29kZSAuPSAkd2luZG93QWxpYXNlcyBpZiAkd2luZG93QWxpYXNlczsKICAgICAg
ICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJXb3JrZXIiKSB7CiAgICAgICAgICAg
ICAgICAgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29k
ZTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTaGFkb3dSZWFsbSIp
IHsKKyAgICAgICAgICAgICAgICAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Nv
ZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4
dCBlcSAiRGVkaWNhdGVkV29ya2VyIikgewogICAgICAgICAgICAgICAgICRkZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAg
ICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2VydmljZVdvcmtlciIpIHsKQEAgLTMw
Myw2ICszMTEsNyBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxl
TmFtZUhhc2gpIHsKICMgR2VuZXJhdGUgcGFydGlhbCBpbnRlcmZhY2VzIGZvciBDb25zdHJ1Y3Rv
cnMuCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRPTVdpbmRvdyIsICR3aW5kb3dDb25zdHJ1
Y3RvcnNDb2RlLCAkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIldvcmtlckdsb2JhbFNjb3BlIiwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRp
YWxJbnRlcmZhY2UoIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAkc2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUsICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJ
bnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNoYXJlZFdvcmtlckdsb2JhbFNj
b3BlIiwgJHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZWUzN2Q0MWRkYmNmZDczYTIzYzJhNjlkYzMz
ZWE4Y2ZiZGNkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApAQCAtMCwwICsxLDIw
MiBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNl
IHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1i
aW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKKyNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJKU0RPTUF0
dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCisjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0SW5saW5lcy5oIgorI2luY2x1ZGUg
IkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiSlNFeHBvc2VkU3Rhci5oIgorI2luY2x1
ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBB
bmFseXplci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yTWFjcm9zLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU3Vic3BhY2VJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKKy8vIEF0dHJpYnV0ZXMK
Kworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CisKK3VzaW5nIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlPjsKKworLyogSGFzaCB0YWJsZSAqLworCitzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRl
eFs1XSA9IHsKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEg
fSwKKyAgICB7IDAsIDQgfSwKKyAgICB7IDEsIC0xIH0sCit9OworCisKK3N0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZVZhbHVlc1tdID0KK3sK
KyAgICB7ICJFeHBvc2VkU3RhciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4
cG9zZWRTdGFyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiU2hhZG93UmVhbG1HbG9iYWxTY29w
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6aW5mbygpLCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRleCB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVj
dG9yKSB9OworCit0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0odm0pOwor
ICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCk7Cit9CisKK3RlbXBsYXRl
PD4gdm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6
ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorewor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CisgICAgSlNTdHJpbmcqIG5hbWVTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJp
bmcodm0sICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIl9zKTsKKyAgICBtX29yaWdpbmFsTmFtZS5z
ZXQodm0sIHRoaXMsIG5hbWVTdHJpbmcpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bmFtZSwgbmFtZVN0cmluZywgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdsb2JhbE9iamVjdC5nZXRQcm90b3R5cGVEaXJl
Y3Qodm0pLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSk7
Cit9CisKK2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnNfaW5mbyA9
IHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAmSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlKSB9OworCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OkpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8U2hhZG93
UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsKQorICAgIDogSlNET01XcmFwcGVyPFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGU+KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpCit7Cit9CisKK3ZvaWQg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkq
IHByb3h5KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7CisKKyAgICBz
dGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZl
RE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFj
dGl2ZURPTU9iamVjdC4iKTsKKworfQorCitKU1ZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVET01Db25zdHJ1Y3RvciwgRE9NQ29uc3RydWN0b3JJRDo6U2hhZG93UmVhbG1HbG9iYWxT
Y29wZT4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
KTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmRlc3Ryb3koSlNDOjpKU0Nl
bGwqIGNlbGwpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4oY2VsbCk7CisgICAgdGhpc09i
amVjdC0+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0
PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CisgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQorICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOworfQorCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgdGhpc09iamVjdCkK
K3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIEpT
RXhwb3NlZFN0YXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZT46OmdldDxqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0
YXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0
cmlidXRlTmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHRo
aXNPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAg
IHJldHVybiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQorewor
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPjo6Z2V0PGpz
U2hhZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOwor
fQorCitKU0M6Oklzb1N1YnNwYWNlKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnN1YnNwYWNl
Rm9ySW1wbChKU0M6OlZNJiB2bSkKK3sKKyAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisgICAgYXV0byYgc3BhY2VzID0g
Y2xpZW50RGF0YS5zdWJzcGFjZXMoKTsKKyAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9z
dWJzcGFjZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0KCkpCisgICAgICAgIHJldHVybiBz
cGFjZTsKKyAgICBzcGFjZXMubV9zdWJzcGFjZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCBjbGllbnRE
YXRhLm1faGVhcENlbGxUeXBlRm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLCBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUpOworICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlLmdldCgpOworSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJl
YWNoYWJsZS1jb2RlIikKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBh
cmUiKQorICAgIHZvaWQgKCpteVZpc2l0T3V0cHV0Q29uc3RyYWludCkoSlNDOjpKU0NlbGwqLCBK
U0M6OlNsb3RWaXNpdG9yJikgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnZpc2l0T3V0cHV0
Q29uc3RyYWludHM7CisgICAgdm9pZCAoKmpzQ2VsbFZpc2l0T3V0cHV0Q29uc3RyYWludCkoSlND
OjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikgPSBKU0M6OkpTQ2VsbDo6dmlzaXRPdXRwdXRD
b25zdHJhaW50czsKKyAgICBpZiAobXlWaXNpdE91dHB1dENvbnN0cmFpbnQgIT0ganNDZWxsVmlz
aXRPdXRwdXRDb25zdHJhaW50KQorICAgICAgICBjbGllbnREYXRhLm91dHB1dENvbnN0cmFpbnRT
cGFjZXMoKS5hcHBlbmQoc3BhY2UpOworSUdOT1JFX1dBUk5JTkdTX0VORAorSUdOT1JFX1dBUk5J
TkdTX0VORAorICAgIHJldHVybiBzcGFjZTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGU6OmFuYWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZSo+KGNlbGwpOworICAgIGFuYWx5emVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCisgICAgICAgIGFuYWx5emVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJs
ICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
KTsKKyAgICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFseXplcik7Cit9CisKK2Jvb2wgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgQWJzdHJhY3RTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oaGFu
ZGxlKTsKKyAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNv
bik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCog
Y29udGV4dCkKK3sKKyAgICBhdXRvKiBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgPSBzdGF0aWNf
Y2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
CisgICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4
dCk7CisgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUt
PndyYXBwZWQoKSwganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKK30KKworU2hhZG93UmVhbG1H
bG9iYWxTY29wZSogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp0b1dyYXBwZWQoSlNDOjpWTSYg
dm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4odm0sIHZhbHVlKSkKKyAgICAgICAg
cmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2ZlMjNmMzA4
MDQwMTMyMDNlMzFhMWI0MWJlYTZkNTk1YTg3MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdl
YktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0
ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgOiBwdWJsaWMgSlNET01X
cmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNl
ID0gSlNET01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OworICAgIHN0YXRpYyBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCwgSlNDOjpKU1By
b3h5KiBwcm94eSkKKyAgICB7CisgICAgICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSogcHRy
ID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGU+KHZtKSkgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUo
aW1wbCkpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7CisgICAgICAg
IHJldHVybiBwdHI7CisgICAgfQorCisgICAgc3RhdGljIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUq
IHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgSlND
OjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6R2xvYmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMg
SlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCisgICAgeworICAgICAg
ICBpZiBjb25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6Q29uY3VycmVudGx5
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdWJzcGFjZUZv
ckltcGwodm0pOworICAgIH0KKyAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3JJbXBsKEpTQzo6Vk0mIHZtKTsKKyAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwq
LCBKU0M6OkhlYXBBbmFseXplciYpOworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKK3Byb3RlY3RlZDoKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+
JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopOwor
fTsKKworY2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXIgZmluYWwgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgeworcHVibGljOgorICAgIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpBYnN0cmFjdFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKKyAgICB2b2lkIGZp
bmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwor
fTsKKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSopCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVyPiBvd25lcjsKKyAgICByZXR1cm4g
Jm93bmVyLmdldCgpOworfQorCitpbmxpbmUgdm9pZCogd3JhcHBlcktleShTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKiB3cmFwcGFibGVPYmplY3QpCit7CisgICAgcmV0dXJuIHdyYXBwYWJsZU9iamVj
dDsKK30KKworCit0ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8
U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZTsKKyAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSo7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNlODEyZjA0ODY0NjZjZDhlNGQ5NzE2MmI0Y2RkM2Y2MzJkMmRlODgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAK
Ky8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0
aGF0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVkIGZvciBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxk
CisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTgxMmYwNDg2NDY2
Y2Q4ZTRkOTcxNjJiNGNkZDNmNjMyZDJkZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJh
dGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmggYW5kCisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRv
IHJlZ2VuZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NzZkZDdmMWZlN2E5
YWNkOTY5ZTYwY2EwZThkOWNmZWJlMTRmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKQEAg
LTAsMCArMSwyIEBACitbRXhwb3NlZD1TaGFkb3dSZWFsbV0gaW50ZXJmYWNlIFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2U0ODcxMzE2ZDZhMDczNDI3NmQzYjRlOTQ5OGY3
MDRmNmM1YTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBAIC0wLDAg
KzEsNCBAQAorcGFydGlhbCBpbnRlcmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgICAg
YXR0cmlidXRlIEV4cG9zZWRTdGFyQ29uc3RydWN0b3IgRXhwb3NlZFN0YXI7CisgICAgYXR0cmli
dXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKaW5kZXggYzEyMzIxNTI0
NjFhNmMyZWQyZTU0ODBhMmU3YzZkYjY4ODRiYTQ2My4uZTMxZTBmNTgyM2NlY2RjNTBjY2JiYzRm
N2YyNjE2NzJhYzBlNzEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKQEAg
LTIxLDYgKzIxLDEwIEBAIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6IFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIERPTVNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbAogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbDoKK0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
LmlkbAorRE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbAorV2ViRE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGw6CiBKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUu
aDogU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01TaGFyZWRX
b3JrZXJHbG9iYWxTY29wZS5oOiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDM1
MzNjMjBlMmVlNTc5NjBiNTRiZmUxNTM2ZGUzZmIyZjhjY2ExODYuLjJhYWI3YjYyNTllN2YxMjkz
YTgwMWY4YjMwZTI5OGQyMmVjN2NjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtMzEyLDYgKzMxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ2Fs
bGVycyBzaG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4K
ICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2Ny
aXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiA9IG51bGxwdHIsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4
Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpID0gMDsKKwogICAgIGJvb2wgZGlzcGF0Y2hFcnJv
ckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNv
bHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9uKiwgQ2Fj
aGVkU2NyaXB0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiYjU0MDg5Y2EzMDIzNjA0MTljYmY4NWRkYWUyOTA3OWI1NDljYWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2hhZG93UmVhbG1H
bG9iYWxTY29wZSk7CisKK1JlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIHdyYXBwZXIsIFNjcmlw
dE1vZHVsZUxvYWRlciogbG9hZGVyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSh3cmFwcGVyLCBsb2FkZXIpKTsKK30KKworU2hhZG93UmVhbG1HbG9i
YWxTY29wZTo6U2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0RPTUdsb2JhbE9iamVjdCogd3JhcHBl
ciwgU2NyaXB0TW9kdWxlTG9hZGVyKiBsb2FkZXIpCisgICAgOiBtX2luY3ViYXRpbmdXcmFwcGVy
KHdyYXBwZXIpCisgICAgLCBtX3BhcmVudExvYWRlcihsb2FkZXIpCit7Cit9CisKK1NjcmlwdE1v
ZHVsZUxvYWRlciYgU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKCkKK3sKKyAg
ICBpZiAobV9tb2R1bGVMb2FkZXIpCisgICAgICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7CisK
KyAgICBhdXRvIHdyYXBwZXIgPSBtX3dyYXBwZXIuZ2V0KCk7CisgICAgQVNTRVJUKHdyYXBwZXIp
OworCisgICAgbV9tb2R1bGVMb2FkZXIgPSBtX3BhcmVudExvYWRlci0+c2hhZG93UmVhbG1Mb2Fk
ZXIod3JhcHBlcikubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgcmV0dXJuICptX21vZHVsZUxvYWRl
cjsKK30KKworSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSogU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6d3JhcHBlcigpCit7CisgICAgcmV0dXJuIG1fd3JhcHBlci5nZXQoKTsKK30KKworU2hh
ZG93UmVhbG1HbG9iYWxTY29wZTo6flNoYWRvd1JlYWxtR2xvYmFsU2NvcGUoKSA9IGRlZmF1bHQ7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY1ZmE2YTQzMDYxMDMwYTNlOWY5MWUzMmY4
ZTQ5OTRkYWM4ZjUwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9XZWFrLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBT
Y3JpcHRNb2R1bGVMb2FkZXI7CisKK2NsYXNzIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgOiBwdWJs
aWMgUmVmQ291bnRlZDxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiB7CisgICAgZnJpZW5kIGNsYXNz
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8
U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gdHJ5Q3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgU2Ny
aXB0TW9kdWxlTG9hZGVyKik7CisgICAgflNoYWRvd1JlYWxtR2xvYmFsU2NvcGUoKTsKKworICAg
IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHNlbGYoKTsKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXIm
IG1vZHVsZUxvYWRlcigpOworICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqIHdyYXBw
ZXIoKTsKKworcHJvdGVjdGVkOgorICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNET01HbG9i
YWxPYmplY3QqLCBTY3JpcHRNb2R1bGVMb2FkZXIqKTsKKworcHJpdmF0ZToKKyAgICBKU0M6Oldl
YWs8SlNET01HbG9iYWxPYmplY3Q+IG1faW5jdWJhdGluZ1dyYXBwZXI7CisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyKiBtX3BhcmVudExvYWRlciB7IG51bGxwdHIgfTsKKyAgICBKU0M6OldlYWs8SlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZT4gbV93cmFwcGVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOworfTsKKworaW5saW5lIFNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUmIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnNlbGYoKSB7IHJldHVy
biAqdGhpczsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmM0M2I1OGJmMjE2
MmIxODM5ODMwYTBiMzEwM2RiNTliNDhmMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBF
eHBvc2VkPVNoYWRvd1JlYWxtLAorICAgIEpTTGVnYWN5UGFyZW50PUpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UsCisgICAgR2xvYmFsPVNoYWRvd1JlYWxtLAorICAgIExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0LAorXSBpbnRlcmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgc2VsZjsKK307CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmFkY2UwYTFhNzYy
N2UzZDc0NmNiM2FjNjNkODMzOWI0NDdiY2U2MS4uODE2ZjU1YTQzZWZiMDE5ODFlN2RjZmVmYmM2
ODlhOGFkMGYzY2JkNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTIxICBKb3NlcGggR3JpZWdvICA8amdy
aWVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29yZSBt
b2R1bGUgbG9hZGVycyBmb3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmlu
ZGluZ3MvbWFpbi5weToKKyAgICAgICAgKEJpbmRpbmdzVGVzdHMuZ2VuZXJhdGVfc3VwcGxlbWVu
dGFsX2RlcGVuZGVuY3kpOgorICAgICAgICAoQmluZGluZ3NUZXN0cy5tYWluKToKKwogMjAyMi0w
MS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBT
ZXJ2aWNlV29ya2VyQ2xpZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2ZWQg
ZnJvbSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMDIyZDA5ZTg2OTMxMWYwMDQ0MzQwOTY5Y2EzNDk4
NWNiNzIwZWE1Ny4uY2U4YjUwNjMxMGYxOTdkMjUzYTViNTE4NTlmMTdkNmUzMTlkNWE3YiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBj
bGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUK
ICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRh
bF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2Nv
bnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVk
aWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFp
bnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUpOgorICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1
dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9t
YWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmls
ZS5ta3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9k
aXJlY3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0
ZXh0KGlucHV0X2ZpbGUpCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgICAgICAgICAnLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxf
bWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLAogICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3Ry
dWN0b3JzRmlsZScsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICct
LXdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tc2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUnLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLAogICAgICAgICAgICAgICAgJy0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlJywgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
CiAgICAgICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlJywgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAg
ICAgICAgICAgJy0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hh
cmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCkBAIC0xOTksNiArMjAwLDcg
QEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2Rl
cGVuZGVuY3lfZmlsZW5hbWUgPSAnU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCcKICAgICAg
ICAgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnRE9NV2luZG93Q29uc3RydWN0
b3JzLmlkbCcKICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1l
ID0gJ1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAgICAgc2hhZG93cmVh
bG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcK
ICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0g
J1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKQEAgLTIxMyw2ICsyMTUs
NyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVf
ZGVwZW5kZW5jeV9maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxm
LnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9tYWtlZmls
ZV9kZXBlbmRlbmN5X2ZpbGVuYW1lKQogICAgICAgICB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUg
PSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBl
bHNlIGlucHV0X2RpcmVjdG9yeSwgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAg
ICAgICAgIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2lu
KHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJl
Y3RvcnksIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAg
c2hhZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3
b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0
b3J5LCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAg
ICAgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRo
LmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0
X2RpcmVjdG9yeSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVu
YW1lKQogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUg
PSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBl
bHNlIGlucHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlbmFtZSkKICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVz
dWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGVuYW1lKQpAQCAtMjIxLDcgKzIyNCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6
CiAgICAgICAgIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3Mu
cGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBp
bnB1dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSkKICAgICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0
aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1
dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAg
ICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJl
Y3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmls
ZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVz
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0
ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdp
bmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAg
ICAgICAgICAgIHByaW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5k
ZW5jeSBmaWxlLicpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQog
ICAgICAgICAgICAgcmV0dXJuIC0xCkBAIC0yMzMsNiArMjM2LDggQEAgY2xhc3MgQmluZGluZ3NU
ZXN0czoKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAg
ICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVj
dG9yeSwgaW5wdXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAg
ICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGly
ZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UK
ICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3
b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNz
ZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9i
YWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNjMjE5MjllZTRkZjIx
NmViZDg3MmJhOGZjMDY3ZDlmNTc0ZjExOGEuLjJhODE1NmRiYWZhZWE4N2QzZmFjNTk5OGJiMjE0
OWYyMWM2OGYxZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdy
aWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNl
IFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAg
ICAgICAgSW1wcm92ZSB0ZXN0IGNvdmVyYWdlIGEgYml0IGZvciBzaGFkb3cgcmVhbG1zLCBlc3Bl
Y2lhbGx5IHJ1bm5pbmcKKyAgICAgICAgbmVzdGVkLCBpbiB3b3JrZXIgY29udGV4dHMsIG9yIGlu
IGlmcmFtZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBqcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL1No
YWRvd1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
U2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93
UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVh
bG0td29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9TaGFkb3dS
ZWFsbS1ldmFsdWF0ZS5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnRfY2xvc2VkX29wZW5lcik6
CisgICAgICAgIChwcm9taXNlX3Rlc3QuYXN5bmMgdCk6CisgICAgICAgICoganMvc2NyaXB0LXRl
c3RzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKHdyYXBwZWRM
b2cpOgorICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5jIHQpOgorICAgICAgICAqIGpzL3Njcmlw
dC10ZXN0cy9leGFtcGxlLW1vZHVsZS5qczogQWRkZWQuCisgICAgICAgIChjaGVjayk6CisgICAg
ICAgIChsb2dfZXF1YWwpOgorICAgICAgICAoY2hlY2tfbmVzdGVkKToKKyAgICAgICAgKHNldFZh
bHVlKToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtlci5qczog
QWRkZWQuCisgICAgICAgIChhc3NlcnRfZXF1YWxzKToKKyAgICAgICAgKGFzeW5jIHRlc3QpOgor
ICAgICAgICAoYXN5bmMgYXdhaXQpOgorCiAyMDIyLTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBV
VUlEIGluc3RlYWQgb2YgYSBzdHJpbmcgZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9p
ZnJhbWUtc2hhZG93LXJlYWxtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9pZnJhbWUtc2hhZG93LXJlYWxtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWQ3OTky
ZDM3YjNiZmEyNTQ0YTg2OTBmMzFiOWNmNTcxYWUwMWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1zaGFkb3ctcmVhbG0tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCBzaGFkb3cgcmVhbG1zIGNhbiBsb2FkIG1vZHVs
ZXMgZnJvbSBkaWZmZXJlbnQtb3JpZ2luIGlmcmFtZSBjb250ZXh0cworCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC5kYXRhIGlzIDQyCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1zaGFkb3ctcmVhbG0uaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9pZnJhbWUtc2hhZG93LXJlYWxtLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJk
OWI1YjQxNjBmYmFkYzU3MjZkOGUyYzcyNTJjNTk0YTU0YTUzYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pZnJhbWUtc2hhZG93LXJlYWxtLmh0bWwKQEAg
LTAsMCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxt
PXRydWUgXSAtLT4KKzxib2R5PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0tc3ViZnJhbWUuaHRtbCI+PC9pZnJh
bWU+CisgICAgPHNjcmlwdD4KKyAgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBzaGFkb3cgcmVh
bG1zIGNhbiBsb2FkIG1vZHVsZXMgZnJvbSBkaWZmZXJlbnQtb3JpZ2luIGlmcmFtZSBjb250ZXh0
cyIpOworCisgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgICAgICAgc2hvdWxk
QmUoImV2ZW50LmRhdGEiLCAiNDIiKTsKKyAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICB9
KTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3Jlc291cmNlcy9pZnJhbWUtc2hhZG93LXJlYWxtLXN1YmZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0t
c3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWZkMzJlMjAwNWIyNjAxYWNiNzIxNDhhYzRmNjI0
OTM5MWIyMTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy9pZnJhbWUtc2hhZG93LXJlYWxtLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSwx
MCBAQAorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgb25sb2FkID0gYXN5bmMgZnVuY3Rpb24g
KCkKKyAgICAgeworICAgICAgICAgdmFyIHNyID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAg
ICB2YXIgYmxvb3BfdmFsID0gYXdhaXQgc3IuaW1wb3J0VmFsdWUoIi4vaWZyYW1lLXNoYWRvdy1y
ZWFsbS5qcyIsICJibG9vcCIpOworICAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShi
bG9vcF92YWwsICIqIik7CisgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXNoYWRvdy1y
ZWFsbS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXNo
YWRvdy1yZWFsbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmJkMzI1NjNmNDcyM2NjZTk2MjBlMzY5ZTEzMTNm
MmY3YTNiMjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy9pZnJhbWUtc2hhZG93LXJlYWxtLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCBj
b25zdCBibG9vcCA9IDQyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0t
ZXZhbHVhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OTgwNDk3M2ZkZWFhY2NmYjRkYTMzYjYzZmRi
OTM4MjVjZjc1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFs
bS1ldmFsdWF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRvIGVuc3VyZSBj
b3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuZXZhbHVhdGUKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUyB3aW5kb3cuY2xvc2UoKSBhZmZlY3Rz
IG5hbWUgdGFyZ2V0aW5nIGltbWVkaWF0ZWx5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5OTQ3MTQ1NzllN2U4NTYwMzU3ZWRjMjU1ODJkZjdh
ODQ5MGYwMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1l
dmFsdWF0ZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9
LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIg
b2YgU2hhZG93UmVhbG0ucHJvdG90eXBlLmV2YWx1YXRlIik7CisKKyAgICBmdW5jdGlvbiBhc3Nl
cnRfY2xvc2VkX29wZW5lcih3LCBjbG9zZWQsIG9wZW5lcikgeworICAgICAgICBhc3NlcnRfZXF1
YWxzKHcuY2xvc2VkLCBjbG9zZWQpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHcub3BlbmVyLCBv
cGVuZXIpOworICAgIH0KKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgICAg
Y29uc3Qgb3BlbmVlID0gd2luZG93Lm9wZW4oIiIsICJncmVhdG5hbWUiKTsKKyAgICAgICAgY29u
c3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworCisgICAgICAgIC8vIHNl
dHVwIHJlYWxtIG5lc3RlZCBpbiBvdXRlclNoYWRvd1JlYWxtCisgICAgICAgIG91dGVyU2hhZG93
UmVhbG0uZXZhbHVhdGUoInZhciBpbm5lclJlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7Iik7Cisg
ICAgICAgIG91dGVyU2hhZG93UmVhbG0uZXZhbHVhdGUoInZhciBjYWxsSW5Jbm5lciA9IGlubmVy
UmVhbG0uZXZhbHVhdGUoXCIoY2IpID0+IGNiKClcIik7Iik7CisKKyAgICAgICAgY29uc3QgY2Fs
bEluTmVzdGVkUmVhbG0gPSBvdXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCIoY2IpID0+IGNhbGxJ
bklubmVyKGNiKSIpOworCisgICAgICAgIC8vIGNhbGwgY2xvc2Ugd2luZG93IHR3byBsZXZlbHMg
ZGVlcAorICAgICAgICBhc3NlcnRfY2xvc2VkX29wZW5lcihvcGVuZWUsIGZhbHNlLCBzZWxmKTsK
KyAgICAgICAgY2FsbEluTmVzdGVkUmVhbG0oKCkgPT4gb3BlbmVlLmNsb3NlKCkpOworICAgICAg
ICAvLyBvcGVuZWUuY2xvc2UoKQorICAgICAgICBhc3NlcnRfY2xvc2VkX29wZW5lcihvcGVuZWUs
IHRydWUsIHNlbGYpOworICAgIH0sICJ3aW5kb3cuY2xvc2UoKSBhZmZlY3RzIG5hbWUgdGFyZ2V0
aW5nIGltbWVkaWF0ZWx5Iik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1kZXRhY2gtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLWRldGFjaC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDZlMmM4ZTFiYzZmMDNkM2Y3MmUxOTUyOTU3NGJjZTA0MjI3OTRhNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1kZXRhY2gt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVo
YXZpb3VyIG9mIFNoYWRvdyBSZWFsbSBvYmplY3RzIHRoYXQgZXNjYXBlIHRoZWlyIG9yaWdpbmF0
aW5nIGlmcmFtZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworW29iamVjdCBXaW5k
b3ddCitbb2JqZWN0IFdpbmRvd10KK2RldGFjaGluZyBpZnJhbWUKK1tvYmplY3QgU2hhZG93UmVh
bG1dCitkcm9wcGluZyByZWFsbSB2YWx1ZQorUEFTUyAoKSA9PiBjaGVja0ZuMih3cmFwcGVkTG9n
KCJzaGFkb3dSZWFsbSIpKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVh
bG0taWZyYW1lLWRldGFjaC5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1l
LWRldGFjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NjUxZjA4OTdkMjYzN2Q0MWFlZThhNDMwYmJlOGNh
MmZjYjljNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1p
ZnJhbWUtZGV0YWNoLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0
aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9zaGFkb3ctcmVhbG0taWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorIGRlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2
aW91ciBvZiBTaGFkb3cgUmVhbG0gb2JqZWN0cyB0aGF0IGVzY2FwZSB0aGVpciBvcmlnaW5hdGlu
ZyBpZnJhbWUiKTsKKyB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyBmdW5jdGlvbiB3
cmFwcGVkTG9nKHByZWZpeCkgeworICAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAg
ICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAgIH07CisgfQorCisgbGV0IGZyYW1l
ID0gd2luZG93LmZyYW1lc1swXTsKKyBkZWJ1ZyhmcmFtZSk7CisgZnJhbWUub25sb2FkID0gYXN5
bmMgKCkgPT4geworICAgICBkZWJ1ZyhmcmFtZSk7CisgICAgIGxldCByZWFsbSA9IGZyYW1lLnJl
YWxtOworICAgICBkZWJ1ZygiZGV0YWNoaW5nIGlmcmFtZSIpOworICAgICBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0ucmVtb3ZlKCkKKyAgICAgJHZtLmdjKCk7Cisg
ICAgIGZyYW1lID0gbnVsbDsKKyAgICAgZGVidWcocmVhbG0pOworICAgICBjb25zdCBjaGVja0Zu
MiA9IGF3YWl0IHJlYWxtLmltcG9ydFZhbHVlKCIuL3Jlc291cmNlcy9leGFtcGxlLW1vZHVsZS5q
cyIsICJjaGVjayIpOworICAgICBkZWJ1ZygiZHJvcHBpbmcgcmVhbG0gdmFsdWUiKQorICAgICBy
ZWFsbSA9IG51bGw7CisgICAgICR2bS5nYygpOworICAgICBzaG91bGRCZSgoKSA9PiBjaGVja0Zu
Mih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwKKyAgICAgICAgICAgICAgInRydWUiKTsKKyAg
ICAgZmluaXNoSlNUZXN0KCk7CisgfQorCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLXNhbmRib3hlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2FuZGJveGVkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjhhZmE2M2UyYzI4MWUwZTQwNWRiMDBhOWZhNDU1ZmYz
NWU4OTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZy
YW1lLXNhbmRib3hlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCB0byBlbnN1
cmUgU2hhZG93UmVhbG1zIHJ1bm5pbmcgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGRvIG5vdCBhY2Nl
c3MgdGhlIHBhcmVudCB3aW5kb3cgb2JqZWN0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCithdHRhY2hlZCBmcmFtZXM6IDEKK2RldGFjaGluZyBpZnJhbWUKK2Ryb3BwaW5nIHJlYWxt
IHZhbHVlCitQQVNTICgpID0+IGNoZWNrRm4yKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2FuZGJveGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2FuZGJveGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2ViMTZkNmE5ZTZiOGVmZGUzMGQ5NzI0NmUxZjcwNTdkOGY4OGEwYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5kYm94
ZWQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNl
U2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxpZnJhbWUg
c3JjPSJyZXNvdXJjZXMvc2hhZG93LXJlYWxtLWlmcmFtZS5odG1sIiBzYW5kYm94PSJhbGxvdy1z
Y3JpcHRzIj48L2lmcmFtZT4KKzxzY3JpcHQ+CisgZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJl
IFNoYWRvd1JlYWxtcyBydW5uaW5nIGluIGEgc2FuZGJveGVkIGlmcmFtZSBkbyBub3QgYWNjZXNz
IHRoZSBwYXJlbnQgd2luZG93IG9iamVjdCIpOworIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworIGZ1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgIHJldHVybiBmdW5jdGlv
biAobXNnKSB7CisgICAgICAgICBkZWJ1ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICAgfTsK
KyB9CisKKyBkZWJ1ZygiYXR0YWNoZWQgZnJhbWVzOiAiICsgd2luZG93LmZyYW1lcy5sZW5ndGgp
OworIGxldCBmcmFtZSA9IHdpbmRvdy5mcmFtZXNbMF07Cisgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgIGxldCByZWFsbSA9IGZyYW1lLnJlYWxt
OworICAgICBkZWJ1ZygiZGV0YWNoaW5nIGlmcmFtZSIpOworICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0ucmVtb3ZlKCkKKyAgICAgJHZtLmdjKCk7CisgICAg
IGZyYW1lID0gbnVsbDsKKyAgICAgY29uc3QgY2hlY2tGbjIgPSBhd2FpdCByZWFsbS5pbXBvcnRW
YWx1ZSgiLi9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2siKTsKKyAgICAgZGVi
dWcoImRyb3BwaW5nIHJlYWxtIHZhbHVlIikKKyAgICAgcmVhbG0gPSBudWxsOworICAgICAkdm0u
Z2MoKTsKKyAgICAgc2hvdWxkQmUoKCkgPT4gY2hlY2tGbjIod3JhcHBlZExvZygic2hhZG93UmVh
bG0iKSksCisgICAgICAgICAgICAgICJ0cnVlIik7CisgICAgIGZpbmlzaEpTVGVzdCgpOworIH0p
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9T
aGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFk
b3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYxNGM1NTVhODA4
YjdiMmZmYjdmYzYxNzlmNzA3NDc0ODU3OWIyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACitDT05TT0xFIE1FU1NBR0U6IDQyCitUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91
ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuaW1wb3J0VmFsdWUKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK3NoYWRvd1JlYWxtOiBjYWxsaW5nIG5lc3RlZCByZWFsbSB3cmFwcGVy
IHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitzaGFkb3dSZWFsbTogbmVzdGVkIHJlYWxtIGV2YWwg
dXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKKworUEFTUyBjYW4gaW1wb3J0IG1vZHVsZSBpbiBhIHNo
YWRvdyByZWFsbQorUEFTUyBjYW4gbmVzdCByZWFsbXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdhOGM2NTMwMjczYzMzMzNjNWVh
MDE4OTljNTIzNjZkMWQ0MzQ5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3Jy
ZWN0IGJlaGF2aW91ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuaW1wb3J0VmFsdWUiKTsKKwor
ICAgIGZ1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgICAgIHJldHVybiBmdW5jdGlv
biAobXNnKSB7CisgICAgICAgICAgICBkZWJ1ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICAg
ICAgfTsKKyAgICB9CisKKyAgICBjb25zdCBtb2R1bGVfcGF0aCA9ICIuL3Jlc291cmNlcy9leGFt
cGxlLW1vZHVsZS5qcyI7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29u
c3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgIGNvbnN0IGNoZWNr
Rm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAiY2hl
Y2siKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93UmVhbG0i
KSksIHRydWUpOworCisgICAgY29uc3Qgb3VyTW9kdWxlID0gYXdhaXQgaW1wb3J0KG1vZHVsZV9w
YXRoKTsKKyAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwgImJsb29wIik7
CisgICAgb3VyTW9kdWxlLnNldFZhbHVlKDQyKTsKKyAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVs
ZS52YWx1ZSwgNDIpOworCisgICAgY29uc3QgaW1wb3J0ZWRWYWwgPSBhd2FpdCBvdXRlclNoYWRv
d1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAidmFsdWUiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGltcG9ydGVkVmFsLCB0cnVlKTsKKyAgICBjb25zdCBzZXRWYWx1ZUltcG9ydGVkID0gYXdh
aXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwgInNldFZhbHVlIik7
CisgICAgc2V0VmFsdWVJbXBvcnRlZCgxMDApOworICAgIGNvbnN0IGltcG9ydGVkVmFsMiA9IGF3
YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUobW9kdWxlX3BhdGgsICJ2YWx1ZSIpOwor
ICAgIGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwyLCAxMDApOworICAgIGFzc2VydF9lcXVhbHMo
b3VyTW9kdWxlLnZhbHVlLCA0Mik7CisgICAgfSwgImNhbiBpbXBvcnQgbW9kdWxlIGluIGEgc2hh
ZG93IHJlYWxtIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNv
bnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICAgICAgY29uc3Qg
Y2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUobW9kdWxlX3BhdGgs
ICJjaGVja19uZXN0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjaGVja0ZuKHdyYXBwZWRM
b2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKyAgICB9LCAiY2FuIG5lc3QgcmVhbG1zIik7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFs
bS13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZjQ0OTE5YjAzYTgyNGYxNjY0NTBl
OGJmNzcxOGM3Mzk0NTEwMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFk
b3dSZWFsbS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMg
dGhhdCBTaGFkb3cgUmVhbG0gQVBJcyBhcmUgYXZhaWxhYmxlIGFuZCB3b3JrIHByb3Blcmx5IGlu
c2lkZSB3b3JrZXIgY29udGV4dHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0
YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3NoYWRvdy1yZWFsbS13b3JrZXIuanMKK1BBU1MgW1dv
cmtlcl0gaW1wb3J0LXZhbHVlCitbV29ya2VyXSBzaGFkb3dSZWFsbTogY2FsbGluZyBuZXN0ZWQg
cmVhbG0gd3JhcHBlciB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworW1dvcmtlcl0gc2hhZG93UmVh
bG06IG5lc3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitQQVNTIFtXb3Jr
ZXJdIG5lc3RlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci5odG1s
IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI4
MTE5ODU2OTJkZDk5NWU3NjJlYTYxMzgxOTcyZGJlODZmYjM1YgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci5odG1sCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBTaGFkb3cgUmVh
bG0gQVBJcyBhcmUgYXZhaWxhYmxlIGFuZCB3b3JrIHByb3Blcmx5IGluc2lkZSB3b3JrZXIgY29u
dGV4dHMiKTsKKyAgICAgICAgIGNvbnN0IHdvcmtlciA9IHN0YXJ0V29ya2VyKCJyZXNvdXJjZXMv
c2hhZG93LXJlYWxtLXdvcmtlci5qcyIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
c291cmNlcy9leGFtcGxlLW1vZHVsZS5qcyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9leGFt
cGxlLW1vZHVsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzJlYmM3YTUwMzBlZDgwNDAxMDMyYjA4Mzk1Mjkz
NDllNTI4YmU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2V4
YW1wbGUtbW9kdWxlLmpzCkBAIC0wLDAgKzEsMzIgQEAKK3ZhciB2YWx1ZSA9IHRydWU7CisKK3Zh
ciBjaGVjayA9IGZ1bmN0aW9uKGxvZykgeworICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2Yo
Z2xvYmFsVGhpcykgIT09IE9iamVjdC5wcm90b3R5cGUpIHsKKyAgICAgICAgbG9nKCJnbG9iYWxU
aGlzIHByb3RvdHlwZSBpcyBPYmplY3QucHJvdG90eXBlIik7CisgICAgICAgIGxvZyhPYmplY3Qu
Z2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcykudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGxvZ19lcXVhbChs
b2csIG1zZywgeCwgeSkgeworICAgIGNvbnN0IHJlc3VsdCA9IHggPT0geTsKKyAgICBsb2coYCR7
bXNnfTogJHtyZXN1bHQgPyAnT0snIDogJ0ZBSUxFRCd9YCk7Cit9CisKK3ZhciBjaGVja19uZXN0
ZWQgPSBmdW5jdGlvbihsb2cpIHsKKyAgICBjb25zdCBzciA9IG5ldyBTaGFkb3dSZWFsbSgpOwor
ICAgIGdsb2JhbFRoaXMueCA9IDEwMDsKKyAgICBzci5ldmFsdWF0ZShgZ2xvYmFsVGhpcy54ID0g
NDJgKTsKKyAgICBjb25zdCBmID0gc3IuZXZhbHVhdGUoYCgpID0+IHtyZXR1cm4gZ2xvYmFsVGhp
cy54O31gKTsKKyAgICBsb2dfZXF1YWwobG9nLCAiY2FsbGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBl
ciB1c2VzIGNvcnJlY3QgZ2xvYmFsIiwgNDIsIGYoKSk7CisgICAgbG9nX2VxdWFsKGxvZywgIm5l
c3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWwiLCA0Miwgc3IuZXZhbHVhdGUoYGds
b2JhbFRoaXMueGApKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordmFyIHNldFZhbHVlID0gZnVu
Y3Rpb24gKG5ld1ZhbHVlKSB7CisgICAgY29uc29sZS5sb2cobmV3VmFsdWUpOworICAgIHZhbHVl
ID0gbmV3VmFsdWU7Cit9CisKK2V4cG9ydCB7IHZhbHVlLCBzZXRWYWx1ZSwgY2hlY2ssIGNoZWNr
X25lc3RlZCB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3NoYWRvdy1y
ZWFsbS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0t
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIxZTM3YjdkNTY4YmYyNzkxZDIxMTg3N2UxZGNmZTI1
ZTY4OWRjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFk
b3ctcmVhbG0taWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD48L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICB3aW5kb3cucmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICAgICAgIHdpbmRv
dy5wYXJlbnQucG9zdE1lc3NhZ2UoJ2hpJywgIioiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3No
YWRvdy1yZWFsbS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hhZG93LXJl
YWxtLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTEzZTUwZTFhZDFjMWM0M2MyN2EwMTAwM2RmOTll
NGRmNDdlMzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3No
YWRvdy1yZWFsbS13b3JrZXIuanMKQEAgLTAsMCArMSw1MSBAQAoraW1wb3J0U2NyaXB0cygiLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIik7CisKK2Z1bmN0aW9uIGFzc2VydF9lcXVhbHMo
eCwgeSkgeworICAgIGlmICh4ID09PSB5KSByZXR1cm47CisgICAgdGhyb3cgbmV3IEVycm9yKGBh
c3NlcnRpb24gZmFpbHVyZTogZXhwZWN0ZWQgJHt4fSwgZ290ICR7eX1gKTsKK30KKworZnVuY3Rp
b24gd3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAg
ICAgICBkZWJ1ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICB9OworfQorCisKK2FzeW5jIGZ1
bmN0aW9uIHRlc3Qoa2V5LCBmKSB7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgZigpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChrZXkgKyBlLnRvU3RyaW5nKCkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIHRlc3RQYXNzZWQoa2V5KTsKK30KKworKGFzeW5j
IGZ1bmN0aW9uICgpIHsKKyAgICBhd2FpdCB0ZXN0KCJpbXBvcnQtdmFsdWUiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsK
KyAgICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFs
dWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2siKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICAgICAgICBj
b25zdCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBvcnQoIi4vZXhhbXBsZS1tb2R1bGUuanMiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIHRydWUsICJibG9vcCIpOworICAg
ICAgICBvdXJNb2R1bGUuc2V0VmFsdWUoNDIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG91ck1v
ZHVsZS52YWx1ZSwgNDIpOworCisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsID0gYXdhaXQgb3V0
ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1ZSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGltcG9ydGVkVmFsLCB0cnVlKTsKKyAgICAgICAgY29u
c3Qgc2V0VmFsdWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUo
Ii4vZXhhbXBsZS1tb2R1bGUuanMiLCAic2V0VmFsdWUiKTsKKyAgICAgICAgc2V0VmFsdWVJbXBv
cnRlZCgxMDApOworICAgICAgICBjb25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRv
d1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgInZhbHVlIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwyLCAxMDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIpOworICAgIH0pOworCisgICAgYXdhaXQgdGVzdCgibmVz
dGVkIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3
IFNoYWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRlclNoYWRv
d1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrX25lc3RlZCIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93UmVhbG0i
KSksIHRydWUpOworICAgIH0pOworICAgIGZpbmlzaEpTVGVzdCgpOworfSkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449690</attachid>
            <date>2022-01-21 13:04:54 -0800</date>
            <delta_ts>2022-01-21 13:20:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20220121160453.patch</filename>
            <type>text/plain</type>
            <size>120640</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MWQyYThiYmNkNGUwOGI5YWFhYThhMTQ4YjQyNDM2MGRkNzg1MDdiLi5jNDYxY2UzYjE1NGFmYTlm
MjUyY2I0M2MwZjJiYTI5OWM2ODFiZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0
aW5nIHRoZSBuZXcgcmVhbG0gb2JqZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAg
ICBpbXBvcnRWYWx1ZSByZXF1aXJlcyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2Fk
aW5nIGxvZ2ljIHRvIHdvcmsKKyAgICAgICAgcmlnaHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMi0wMS0yMSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBidWlsZCB3aGVu
IHVzaW5nIFZpc3VhbCBTdHVkaW8gMjAyMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2OTM3ODk5YjU4ZmZmZGVk
M2YwMjg4MTkzZTY0NGViYTViMTJiMjkuLjRiNGY2ZDM4OThjMzIxZjkwMWQxNGZlODI1ZGFhZTgz
Y2EyNzk3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MSBAQAorMjAyMi0wMS0yMSAgSm9zZXBo
IEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10g
VXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisK
KyAgICAgICAgSW50cm9kdWNlcyBhIG5ldyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHRoYXQgc2Vy
dmVzIGFzIHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBhIGdsb2JhbCBvYmplY3QgZm9y
IGNvZGUgcnVubmluZyBpbiBhIHNoYWRvdyByZWFsbS0tdG8KKyAgICAgICAgaW1wbGVtZW50IHRo
ZSByZXF1aXJlbWVudHMgb2YgSlMoRE9NKUdsb2JhbE9iamVjdCwgaXQgc2ltcGx5IGRlbGVnYXRl
cworICAgICAgICBhbGwgbWV0aG9kcyB0byB0aGUgaW5jdWJhdGluZyAoZW5jbG9zaW5nKSByZWFs
bSwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mCisgICAgICAgIG1ldGhvZHMgcmVsYXRlZCB0byBtb2R1
bGUgbG9hZGluZywgZm9yIHdoaWNoIGl0IHVzZXMgYSBjdXN0b20KKyAgICAgICAgU2NyaXB0TW9k
dWxlTG9hZGVyIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBhcHByb3ByaWF0ZSBnbG9iYWwgb2JqZWN0
IHdoZW4KKyAgICAgICAgZXZhbHVhdGluZyBtb2R1bGUgY29kZS4KKworICAgICAgICBBbHNvIHJl
cXVpcmVzIHNvbWUgYWRqdXN0bWVudCB0byB0aGUgSURMLWRyaXZlbiBjb2RlIGdlbmVyYXRpb24t
LXRoZQorICAgICAgICBjdXJyZW50IGRyYWZ0IHNwZWMgcmVxdWlyZXMgdGhhdCB0aGUgZ2xvYmFs
IG9iamVjdCBmb3IgdGhlIHNoYWRvdyByZWFsbQorICAgICAgICBiZSBhbiBvcmRpbmFyeSBvYmpl
Y3QtLVNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgaXMgb3B0ZWQgb3V0IG9mIGNvZGVnZW4KKyAgICAg
ICAgZm9yIHByb2R1Y2luZyBhIGN1c3RvbSBwcm90b3R5cGUsIGJ1dCBjYW4gc3RpbGwgaGF2ZSBB
UElzIGluY2x1ZGVkIGFzCisgICAgICAgIHByb3BlcnRpZXMgaWYgdGhleSBhcmUgbWFya2VkIGFz
IGBFeHBvc2VkPVNoYWRvd1JlYWxtYCBvciBgRXhwb3NlZD0qYAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBqcy9TaGFkb3dSZWFsbS1ldmFs
dWF0ZS5odG1sCisgICAgICAgICAgICAgICBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1s
CisgICAgICAgICAgICAgICBqcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbAorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpzY3JpcHRNb2R1bGVMb2FkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmRlcml2ZVNoYWRvd1JlYWxtR2xv
YmFsT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpk
ZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6
OnN1cHBvcnRzUmljaFNvdXJjZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
QmFzZTo6amF2YVNjcmlwdFJ1bnRpbWVGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzY3JpcHRFeGVjdXRpb25TdGF0dXMpOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cmVwb3J0VmlvbGF0aW9uRm9y
VW5zYWZlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlOjpxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpz
dWJzcGFjZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlOjp3cmFwcGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2U6OmluY3ViYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dE1vZHVsZUxvYWRlcjo6c2hhZG93UmVhbG1Mb2FkZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVu
dERhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKElz
RE9NR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90
eXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlUnVudGlt
ZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nRm9yRXhwb3NlZCk6CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlUHJvdG90eXBlRGVjbGFyYXRpb24pOgor
ICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2ll
cy5kZXA6CisgICAgICAgICogZG9tL1Byb21pc2VSZWplY3Rpb25FdmVudC5pZGw6CisgICAgICAg
ICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSBjb25zdCk6CisgICAg
ICAgICogcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcDogQ29waWVkIGZyb20gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp3cmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6On5TaGFkb3dSZWFsbUdsb2JhbFNj
b3BlKToKKyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaDogQ29waWVkIGZy
b20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnNlbGYpOgorICAgICAgICAq
IHBhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmguCisKIDIwMjItMDEtMjEgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdQVCB2ZXJzaW9uIG9m
IGNzcy9jc3MtY2FzY2FkZS9wYXJzaW5nL2xheWVyLWltcG9ydC1wYXJzaW5nLmh0bWwgY3Jhc2hl
cyB3aXRoIG51bGxwdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2Jh
bE9iamVjdC5jcHAKaW5kZXggOTc4ZjI3M2RmOGFmYTc4MDkzOGQ1ZDRmN2QwYTY2ZDY4OGY1YzQx
NC4uM2RjZWE2Y2EyNmUyOGJkZTM4ZjRiNjkzOTQ2ZWUyOTIwMzA3YTRkYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKQEAgLTUzLDYgKzUz
LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1
YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGlu
c3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVyaXZlU2hhZG93UmVhbG1HbG9i
YWxPYmplY3QKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9ydFVuY2F1Z2h0RXhj
ZXB0aW9uQXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9u
KiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJ
R2xvYmFsT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9i
amVjdC5tbQppbmRleCAzZmI3Nzg0ZWM1N2QxNjRkNWM2Nzc3MDE5ZWZjMzJmZDhlZjJiNWY1Li42
NTM4ZDMzNmM4ODk0MWUxMzc3ZGVjMGRhOGU0ZmJkNzE5N2Q2NzRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KQEAgLTcxLDYgKzcxLDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAg
ICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRp
YXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAog
dm9pZCBKU0FQSUdsb2JhbE9iamVjdDo6cmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9v
cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggOGY4YzVmMzY5ZDZlYTUyMDg4MTc4YjdjYzg1YjcyNDc1MTQ3
NGNhZi4uZGYxODBmYmFkMWM3OTFlYzczY2Y2YjljYTNmNGI0NDI4YzQ2YmE4NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTc1OCw2ICs3NTgsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSBHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVs
bHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWlu
ZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpbmF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFk
b3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyODY0YTE5NWY1NDJlMDk0MzZhZmY3ODMx
MWM0OTZiNTM1MDIxMzdhLi42ZWQ4ZDIwYjBkM2Q3OGJjZGQxN2U0MGVhYjA3MTk4YmFhMGI4MGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCkBAIC01MzcsNiArNTM3LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNH
bG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwg
Ly8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAg
IG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxt
R2xvYmFsT2JqZWN0CiB9OwogCiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAw
M2VhM2E2YzMxNjllNTdlZGY3NzAxMWNiMDhiMjYxOGEwNTBmOTk0Li5lMmIwZWI4MjI0MjY5MWUw
MDBjMjRiYTQwNmQzMDY3MTc0YjMzYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI2NCw2ICsyNjQsOSBAQCBzdHJ1Y3QgR2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgewogCiAgICAgdHlwZWRlZiBKU1Byb21pc2UqICgqSW5zdGFudGlh
dGVTdHJlYW1pbmdQdHIpKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSwgSlNPYmplY3QqKTsKICAg
ICBJbnN0YW50aWF0ZVN0cmVhbWluZ1B0ciBpbnN0YW50aWF0ZVN0cmVhbWluZzsKKworICAgIHR5
cGVkZWYgSlNHbG9iYWxPYmplY3QqICgqRGVyaXZlU2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0
cikoSlNHbG9iYWxPYmplY3QqKTsKKyAgICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9u
UHRyIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxP
YmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDc0LDYgKzEw
NzcsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5m
byhjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBK
U0dsb2JhbE9iamVjdCogZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21N
ZXRob2RUYWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxs
KCkpLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIH0KKwog
ICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVj
dCopIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3Jp
cHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBzdGF0aWMgUnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNH
bG9iYWxPYmplY3QqKSB7IHJldHVybiBSdW50aW1lRmxhZ3MoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApp
bmRleCAxNmU4YWFjM2RhZjMxY2FiZjZiMTg5ZWFkMWIzMzE2YzRhYzE1N2Y3Li5jODg2YmFjMDYz
YjQyYzY3MmYyZmVjOTUxODFmMTAxN2I2NmFmMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApAQCAtNTMs
NyArNTMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aFNoYWRvd1Jl
YWxtQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZwogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBTdHJ1Y3R1cmUqIHNoYWRvd1JlYWxtU3RydWN0dXJlID0gU2hh
ZG93UmVhbG1PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnNoYWRvd1JlYWxtUHJvdG90eXBlKCkpOwotICAgIEpTT2JqZWN0KiBzaGFkb3dSZWFs
bU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNoYWRvd1JlYWxtU3RydWN0
dXJlLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIEpTT2Jq
ZWN0KiBzaGFkb3dSZWFsbU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNo
YWRvd1JlYWxtU3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoc2hhZG93UmVhbG1PYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKaW5kZXggYTI1YTQwMDgwOTMwMDgx
ZjAwOGU2M2UxMTY5ZGNmNzdlNzQzOGZjOC4uNTI3ZTA5MTMxZDM3ODRjYjE2ZDY4YmE3NjI4MjQ1
ODYzOTk3MzM4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hh
ZG93UmVhbG1PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtT2JqZWN0LmNwcApAQCAtNTcsMTIgKzU3LDExIEBAIHZvaWQgU2hhZG93UmVhbG1P
YmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikK
IAogREVGSU5FX1ZJU0lUX0NISUxEUkVOKFNoYWRvd1JlYWxtT2JqZWN0KTsKIAotU2hhZG93UmVh
bG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKQorU2hh
ZG93UmVhbG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBTaGFk
b3dSZWFsbU9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U2hhZG93
UmVhbG1PYmplY3Q+KHZtKSkgU2hhZG93UmVhbG1PYmplY3Qodm0sIHN0cnVjdHVyZSk7CiAgICAg
b2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUodm0sIEpT
R2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgbWV0aG9kVGFibGUp
OwotICAgIG9iamVjdC0+bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIGdsb2JhbE9iamVj
dCk7CisgICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5zZXQodm0sIG9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QpKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaAppbmRleCBkMDg4
ZmY3ODQyZTIwYWU1NDI1MmY2ZGIwNWQ0YzdlODRmOWViMTVjLi5hZGIyZWQwMjJhMzcwYzQwMzky
NDkzN2I1YWE3YjUzYjk4ZjI3ZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAg
ICAgREVDTEFSRV9JTkZPOwogCi0gICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUo
Vk0mLCBTdHJ1Y3R1cmUqLCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSopOworICAgIHN0
YXRpYyBTaGFkb3dSZWFsbU9iamVjdCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNHbG9iYWxP
YmplY3QqKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBt
X2dsb2JhbE9iamVjdC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk3OGEzODY4
YThmNDc1MjdmMjFiMjAwM2ZhODliNjg2ZWRhYTU4ODUuLmE3M2YwOGRhMjdmMmZmNjQ3NTE4ZDM5
ZTg0ZDUwMTk1ZGJiNzc0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA4LDYgKzEyMDgs
NyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvU2Nyb2xsTG9naWNh
bFBvc2l0aW9uLmlkbAogICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Njcm9s
bFRvT3B0aW9ucy5pZGwKKyAgICBwYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCiAgICAg
cGFnZS9TaGFyZURhdGEuaWRsCiAgICAgcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5p
ZGwKICAgICBwYWdlL1VuZG9JdGVtLmlkbApAQCAtMjA4OCw2ICsyMDg5LDcgQEAgc2V0KElTT19T
VUJTUEFDRVNfSEVBREVSX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RPTUlz
b1N1YnNwYWNlcy5oKQogc2V0KENPTlNUUlVDVE9SU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vRE9NQ29uc3RydWN0b3JzLmgpCiBzZXQoV0lORE9XX0NPTlNUUlVD
VE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9ET01XaW5kb3dDb25zdHJ1
Y3RvcnMuaWRsKQogc2V0KFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2Vi
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwpCitzZXQoU0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwpCiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUg
JHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbCkKIHNldChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKQEAgLTIyNzIsMTIgKzIyNzQsMTMgQEAgR0VO
RVJBVEVfQklORElOR1MoV2ViQ29yZUJpbmRpbmdzCiAgICAgR0VORVJBVE9SIEpTCiAgICAgU1VQ
UExFTUVOVEFMX0RFUEZJTEUgJHtTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgIFBQ
X0VYVFJBX09VVFBVVAotICAgICAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtERURJQ0FURURXT1JLRVJHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRX0KKyAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9
ICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0g
JHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtTSEFET1dSRUFMTUdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSAke0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFfQogICAgIFBQX0VYVFJBX0FSR1MKICAgICAgICAgLS1pc29TdWJzcGFj
ZXNIZWFkZXJGaWxlICR7SVNPX1NVQlNQQUNFU19IRUFERVJfRklMRX0KICAgICAgICAgLS1jb25z
dHJ1Y3RvcnNIZWFkZXJGaWxlICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfQogICAgICAgICAt
LXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJHtXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAg
ICAgIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
fQogICAgICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tc2hhcmVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEV9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCBhOTNmYjExY2UwNWM3OTNjZjNmODBkNjY5MmJmZWJlYWQ2YzlhYjM1Li4y
YWExNjZmZDg2MTEzMWYzNTJhMDJkMTc0NTEzYzgzMDdmZGM1OWM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE0MjcsNiArMTQyNyw3
IEBAICQoUFJPSkVDVF9ESVIpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAogJChQUk9K
RUNUX0RJUikvcGFnZS9TY3JvbGxPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TY3Jv
bGxUb09wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1NldHRpbmdzLnlhbWwKKyQoUFJP
SkVDVF9ESVIpL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKICQoUFJPSkVDVF9ESVIp
L3BhZ2UvU2hhcmVEYXRhLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TdHJ1Y3R1cmVkU2VyaWFs
aXplT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDg1Nzhh
OTBhYmM2YWNkNjlmM2JmMzNiMzc5MDY1YTZiYzU5NDJlNTIuLjU4MTg0YTM0ZmMwZDFlNGIyODFh
MmY3YTZhNTc3NGViNDZjZmY0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNDc1LDYgKzI0NzUsOCBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJVcGRhdGVWaWFD
YWNoZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFkb3dSb290LmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFkb3dSb290LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93Um9v
dEluaXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiODAwN2QxMjAxYWYy
Y2E2ZjMyZDUzYWVkMDE4OWVhZjUzMmEyNzk0Li41YWE4ZWQ1MmQ4ZjZjMGM4NjZjMTgwNmUxZTc3
MGE4ZDc2YjczZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNTcsNiAr
MTI1Nyw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9s
bExvZ2ljYWxQb3NpdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25z
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAorICAgICQo
V2ViQ29yZSkvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TdHJ1Y3R1cmVkU2Vy
aWFsaXplT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRvSXRlbS5pZGwgXApA
QCAtMjA3OCw2ICsyMDc5LDcgQEAgSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSA9IERPTUlzb1N1
YnNwYWNlcy5oCiBDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUgPSBET01Db25zdHJ1Y3RvcnMuaAog
V0lORE9XX0NPTlNUUlVDVE9SU19GSUxFID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbAogV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwKK1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogREVESUNBVEVEV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGwKIFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RSA9IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNIQVJFRFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaWRsCkBAIC0yMDkzLDYgKzIwOTUsNyBAQCBJRExfSU5URVJNRURJQVRFX0ZJ
TEVTID0gXAogICAgICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSBcCiAgICAgJChXSU5ET1df
Q09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSBcCisgICAgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSBcCiAgICAgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkg
XAogICAgICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAg
ICAgJChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKQEAgLTIxMDMsNyAr
MjEwNiw3IEBAIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9J
TlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQ
UkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJ
TkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCSQo
c2hlbGwgZWNobyAkKEpTX0JJTkRJTkdfSURMUykgfCB0ciAiICIgIlxuIiA+IElETEZpbGVOYW1l
c0xpc3QudHh0KQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFO
R1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0
IC0taWRsQXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRh
bERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJz
cGFjZXNIZWFkZXJGaWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3Rv
cnNIZWFkZXJGaWxlICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVj
dG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFS
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9E
RVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0Vf
SkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRs
QXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNI
ZWFkZXJGaWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFk
ZXJGaWxlICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlICQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUpIC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1h
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChT
VVBQTEVNRU5UQUxfTUFLRUZJTEVfREVQUykKIAogIwogIyBFbWl0IHRoZSBydWxlcyB0byBnZW5l
cmF0ZSBiaW5kaW5ncyBmcm9tIElETCBmaWxlcy4gTm90ZSB0aGF0IHRoZXJlIGFyZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggY2Q1OGNkYjMyYzk0ODEwNzFhNDQ2NTk0ODY5YjQwY2E2MTA2OWJhNC4u
N2QwZGEwYjdhNWQ4ODM1YzI0N2RjMWFhODIwZjJiZTBmZjJlZGZmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC00NTgsNiArNDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCiAgICAgYmluZGluZ3MvanMvSlNO
b2RlTGlzdEN1c3RvbS5oCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmgKKyAgICBiaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgKICAgICBi
aW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uaAogICAgIGJpbmRpbmdzL2pzL0pTVmFsdWVJ
bldyYXBwZWRPYmplY3QuaAogICAgIGJpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuaApAQCAtMTE0
NCw2ICsxMTQ1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmgKICAgICBwYWdlL1NlY3VyaXR5UG9saWN5LmgKICAg
ICBwYWdlL1NldHRpbmdzQmFzZS5oCisgICAgcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgK
ICAgICBwYWdlL1NoYXJlRGF0YS5oCiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCiAgICAgcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggM2ZhMGJiZDk4
MjRmOWE4NmExMmZlMzg3OWFiZGUwZDNlNDg1OWFmNS4uZDZkMDQ0NGFhYjlkMjJmY2VhNjNkOTgw
MDAxNTMzM2Q3Mzc3ZjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYyMSw2ICs2MjEsNyBAQCBiaW5k
aW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dlYlhSVmlld0N1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCiBiaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKK2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcAog
YmluZGluZ3MvanMvSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC0xNzkyLDYgKzE3OTMsNyBAQCBwYWdlL1NlY3Vy
aXR5T3JpZ2luLmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5
UG9saWN5LmNwcAogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCitwYWdlL1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwCiBwYWdlL1NoYXJlRGF0YVJlYWRlci5jcHAKIHBhZ2UvU29ja2V0UHJvdmlkZXIu
Y3BwCiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApAQCAtMzg2NSw2ICszODY3LDcgQEAgSlNT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCiBKU1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Y3BwCiBKU1NlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5jcHAKIEpTU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudC5jcHAKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKIEpTU2hhZG93Um9v
dC5jcHAKIEpTU2hhZG93Um9vdEluaXQuY3BwCiBKU1NoYWRvd1Jvb3RNb2RlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5
OTlhMmVhMTk2ZTg1NzkwMjBiMDEzYjRmNTA3ZTc1NmM5NWFiYzMuLmZjNzMxMmRiMGEyNDlmN2U4
NDg2NzZkNjE5YzVkNWY0NWQwODgwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDQsNiArMTM0NCw4IEBACiAJCTQ2N0E2
OERBMjc1RUE5OUMwMDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjdBNjhEMjI3NUVBOThBMDA5QjMx
QzUgLyogU2hhcmVkV29ya2VyTWFuYWdlci5oICovOyB9OwogCQk0NjgyRDIwMDFGNzk3ODMwMDBD
ODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMwMEM4NjNEQiAvKiBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0REUx
RURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4M0RGNDAyNzY3REY5ODAwN0QwMEM4IC8qIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlLmggKi87IH07CisJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAv
KiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjgzREYzQjI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODhFRTNBMjZERDI2
MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFDMDA2RTAzMTQgLyogQnJv
YWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlENzdCODI3
MDE2MjUxMDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5RDc3QjYyNzAxNjI1MDAwMTQyRkE2IC8q
IE5hdmlnYXRpb25SZXF1ZXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtOTIzMyw2ICs5MjM1LDExIEBACiAJCTQ2ODM0NERDMUVEREZBNUYw
MEI3Nzk1QiAvKiBET01SZWN0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUmVjdExpc3QuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVj
dExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExp
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjNCMjc2N0RGMjYwMDdEMDBDOCAvKiBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0MyNzY3REYyNjAw
N0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzREYzRDI3NjdE
Rjk4MDA3RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0UyNzY3REY5ODAwN0Qw
MEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NPcmln
aW5Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVkaW9D
b250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4dEN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAyMDIw
MDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJyb2Fk
Y2FzdENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQyMjUsNiAr
MjQyMzIsOSBAQAogCQkJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55YW1s
ICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICov
LAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJ
CQk0NjgzREYzOTI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAg
Ki8sCisJCQkJNDY4M0RGM0IyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaCAqLywKKwkJCQk0NjgzREYzQzI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5pZGwgKi8sCiAJCQkJMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0
YS5oICovLAogCQkJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICov
LAogCQkJCTFBMkM2NjcxMjQyQUZFRjcwMDMwNTVFQyAvKiBTaGFyZURhdGFSZWFkZXIuY3BwICov
LApAQCAtMjkyNTksNiArMjkyNjksOCBAQAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2OCAv
KiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQk0NkJDQkJDMTIwODUwMDgwMDA3
MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLywKIAkJCQk0NkJDQkJDMDIwODUw
MDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8sCisJCQkJNDY4M0RGM0Qy
NzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwICovLAor
CQkJCTQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVC
YXNlLmggKi8sCiAJCQkJOTMxQUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8qIEpTVmFsdWVJbldyYXBw
ZWRPYmplY3QuaCAqLywKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5kb3dQ
cm94eS5jcHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93UHJv
eHkuaCAqLywKQEAgLTM1NjIyLDYgKzM1NjM0LDcgQEAKIAkJCQk1MTgyQzI1QzFGMzE0M0NEMDA1
OUJBN0MgLyogSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUYxNzUwMzFGMzU4QjNCMDBDNzQ5NTAgLyogSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2Fj
aGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUIzN0NFMUY5N0NDRDIwMEI2NTUyMyAvKiBKU1Nl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQwMjc2
N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5QzFEQzI2MjBCMDBCODBCNDggLyogSlNTaGFkb3dSb290
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8qIEpT
U291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM3MTIyLDYgKzM3MTM1LDcgQEAKIAkJ
CQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMuaCBp
biBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAvKiBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3
NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDU2QTdBQzgyNTZDNEY0ODAw
MkY5RERDIC8qIFNoYWRvd1Jvb3RJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5ODFE
QzI2MDMxMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IGEy
MGRjNTYyYmEyNjJjMzg0ZDlmMWRkNzk5ZjJkYzM3Y2Y3YWIxYTEuLmFkZGMxYTYxY2YwMjc1MWQ2
NmUzZDhmYWNlM2NhYjVkNzdiN2RjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ0LDEyICs0NCwxNiBAQAogI2luY2x1ZGUg
IkpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIkpTUmVtb3RlRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5o
IgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dvcmtsZXRH
bG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTV3JpdGFibGVTdHJlYW0uaCIKICNpbmNsdWRlICJS
ZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRNb2R1
bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCiAjaW5jbHVk
ZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgog
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC0yNjUsNiArMjY5LDggQEAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+
KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKGluaGVyaXRzPEpTUmVt
b3RlRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlm
IChpbmhlcml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKKyAgICAgICAg
cmV0dXJuIGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcykt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNXb3JrZXJHbG9i
YWxTY29wZUJhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBp
ZiAoaW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKQEAgLTUwNSw2ICs1
MTEsOCBAQCBzdGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRNb2R1bGVMb2FkZXIoSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHJldHVybiAmZG9jdW1l
bnQtPm1vZHVsZUxvYWRlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CisgICAg
aWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwogICAgIGlm
IChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0pKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZT4odm0pKQpAQCAtNTY5LDYgKzU3Nyw1NCBAQCBKU0M6OkpTT2Jq
ZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMoSlNDOjpKUwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgpKTsK
IH0KIAorSlNDOjpKU0dsb2JhbE9iamVjdCogSlNET01HbG9iYWxPYmplY3Q6OmRlcml2ZVNoYWRv
d1JlYWxtR2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sK
KyAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIGF1dG8gZG9tR2xvYmFs
T2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBh
dXRvIGNvbnRleHQgPSBkb21HbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIC8vIFNhbWUtb3JpZ2lu
IGlmcmFtZXMgcHJlc2VudCBhIGRpZmZpY3VsdCBjaXJjdW1zdGFuY2UgYmVjYXVzZSB0aGUKKyAg
ICAgICAgLy8gc2hhZG93IHJlYWxtIGdsb2JhbCBvYmplY3QgY2Fubm90IHJldGFpbiB0aGUgaW5j
dWJhdGluZyByZWFsbSdzCisgICAgICAgIC8vIGdsb2JhbCBvYmplY3QgKHRoYXQgd291bGQgYmUg
YSByZWZjb3VudCBsb29wKTsgYnV0LCBzYW1lLW9yaWdpb3JpZ2luYWxXb3JsZCk7CisgICAgICAg
IC8vIGlmcmFtZXMgY2FuIGNyZWF0ZSBvYmplY3RzIHRoYXQgb3V0bGl2ZSB0aGVpciBnbG9iYWwg
b2JqZWN0LgorICAgICAgICAvLworICAgICAgICAvLyBPdXIgc29sdXRpb24gaXMgdG8gd2FsayB1
cCB0aGUgcGFyZW50IHRyZWUgb2YgZG9jdW1lbnRzIGFzIGZhciBhcworICAgICAgICAvLyBwb3Nz
aWJsZSB3aGlsZSBzdGlsbCBzdGF5aW5nIGluIHRoZSBzYW1lIG9yaWdpbiB0byBpbnN1cmUgd2Ug
ZG9uJ3QKKyAgICAgICAgLy8gYWxsb3cgdGhlIFNoYWRvd1JlYWxtIHRvIGZldGNoIG1vZHVsZXMg
bWFzcXVlcmFkaW5nIGFzIHRoZSB3cm9uZworICAgICAgICAvLyBvcmlnaW4gd2hpbGUgYXZvaWRp
bmcgYW55IGxpZmV0aW1lIGlzc3VlcyAoc2luY2UgdGhlIHRvcG1vc3QgZG9jdW1lbnQKKyAgICAg
ICAgLy8gd2l0aCBhIGdpdmVuIHdyYXBwZXIgd29ybGQgc2hvdWxkIG91dGxpdmUgb3RoZXIgb2Jq
ZWN0cyBpbiB0aGF0CisgICAgICAgIC8vIHdvcmxkKQorICAgICAgICBhdXRvIGRvY3VtZW50ID0g
JmRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAgIGF1dG8gY29uc3QmIG9yaWdp
bmFsT3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgICAgIGF1dG8mIG9y
aWdpbmFsV29ybGQgPSBkb21HbG9iYWxPYmplY3QtPndvcmxkKCk7CisKKyAgICAgICAgd2hpbGUg
KCFkb2N1bWVudC0+aXNUb3BEb2N1bWVudCgpKSB7CisgICAgICAgICAgICBhdXRvIGNhbmRpZGF0
ZURvY3VtZW50ID0gZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCk7CisKKyAgICAgICAgICAgIGlm
ICghY2FuZGlkYXRlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lT3JpZ2luRG9tYWlu
KG9yaWdpbmFsT3JpZ2luKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg
ZG9jdW1lbnQgPSBjYW5kaWRhdGVEb2N1bWVudDsKKyAgICAgICAgICAgIGRvbUdsb2JhbE9iamVj
dCA9IGNhbmRpZGF0ZURvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qob3Jp
Z2luYWxXb3JsZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlQoZG9tR2xvYmFsT2Jq
ZWN0KTsKKyAgICBhdXRvIHNjb3BlID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlKGRv
bUdsb2JhbE9iamVjdCwgc2NyaXB0TW9kdWxlTG9hZGVyKGRvbUdsb2JhbE9iamVjdCkpOworCisg
ICAgYXV0byBzdHJ1Y3R1cmUgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgbnVsbHB0ciwgSlNDOjpqc051bGwoKSk7CisgICAgYXV0byBwcm94eVN0cnVjdHVy
ZSA9IEpTUHJveHk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwgSlNDOjpqc051bGwoKSk7
CisgICAgYXV0byBwcm94eSA9IEpTUHJveHk6OmNyZWF0ZSh2bSwgcHJveHlTdHJ1Y3R1cmUpOwor
ICAgIGF1dG8gd3JhcHBlciA9IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlKHZtLCBz
dHJ1Y3R1cmUsIFdURk1vdmUoc2NvcGUpLCBwcm94eSk7CisKKyAgICB3cmFwcGVyLT5zZXRQcm90
b3R5cGVEaXJlY3Qodm0sIHdyYXBwZXItPm9iamVjdFByb3RvdHlwZSgpKTsKKyAgICBwcm94eS0+
c2V0VGFyZ2V0KHZtLCB3cmFwcGVyKTsKKworICAgIHJldHVybiB3cmFwcGVyOworfQorCisKIEpT
RE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiB7CiAgICAgaWYgKGlzPERvY3Vt
ZW50Pihjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5oCmluZGV4IGY0ZDg2NWQ5YTAzMjdiOGFkOTRmN2IwZGY5M2NmYzBkNTdjZThiNTgu
LjBhNThlN2U5ZDY3MWJlZGY3NjZmZjJiODM2NzUwNDEyNGNiMWQxY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtODYsNiArODYsNyBA
QCBwdWJsaWM6CiAgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMmIGJ1aWx0aW5JbnRlcm5h
bEZ1bmN0aW9ucygpIHsgcmV0dXJuIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOyB9CiAKICAg
ICBzdGF0aWMgdm9pZCByZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wKEpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qKTsKKyAgICBzdGF0aWMgSlNDOjpKU0dsb2JhbE9iamVj
dCogZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
CiAgICAgdm9pZCBjbGVhckRPTUd1YXJkZWRPYmplY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGUxZDc4MTcwZGFi
MjExNDRkYTI3YWQyNjRjZmExYTVhZjMyZDEzOTguLjRkOTI3MTc5MWFlYmEyNzY1YmJmNDIzNTNl
YmY1ODc0YWUwYzQ0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcApAQCAtOTUsNiArOTUsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAg
bnVsbHB0ciwKICAgICBudWxscHRyLAogI2VuZGlmCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xv
YmFsT2JqZWN0CiB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2luZG93PiYmIHdpbmRvdywgSlNXaW5k
b3dQcm94eSogcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZW1vdGVET01XaW5kb3dCYXNlLmNwcAppbmRleCBhYjNmYWM2NzEzMDRmOGM3YmNhNTkwMzAzMmVk
NmM2MGJkYzFmYTRiLi5hNGQ3MTVmNzA4YzYwYzAyODY1NzljZjE1OTAzNTc3MDBiN2Q1NGFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93
QmFzZS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNSZW1vdGVET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0KICAgICBu
dWxscHRyLCAvLyBkZWZhdWx0TGFuZ3VhZ2UKICAgICBudWxscHRyLCAvLyBjb21waWxlU3RyZWFt
aW5nCiAgICAgbnVsbHB0ciwgLy8gaW5zdGFudGlhdGVTdHJlYW1pbmcKKyAgICBudWxscHRyLCAv
LyBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogSlNSZW1vdGVET01XaW5kb3dC
YXNlOjpKU1JlbW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UmVmUHRyPFJlbW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJveHkqIHByb3h5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2Y5NGUzMTA4ZjhlNDU4ZDZkMjQ3YTM5
ZjAyYjk1NWEzYTYxYTExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTAsMCArMSwxNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCIK
KworI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgIkpTTWljcm90YXNrQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJTY3Jp
cHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNQ
cm94eS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01pY3JvdGFzay5oPgorI2luY2x1ZGUg
PHd0Zi9MYW5ndWFnZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBKU0M7CisKK2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpz
X2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiwgJkpTRE9NR2xvYmFsT2JqZWN0Ojpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZSkgfTsKKworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsK
KyAgICAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywKKyAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
LAorICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAorICAgICZxdWV1ZU1pY3JvdGFza1RvRXZl
bnRMb29wLAorICAgICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAorICAgICZt
b2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAg
Jm1vZHVsZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCisgICAgJnByb21pc2VSZWplY3Rp
b25UcmFja2VyLAorICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAorICAg
ICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCisgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1
cywKKyAgICAmcmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbCwKKyAgICBbXSB7IHJldHVybiBk
ZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgJmNvbXBp
bGVTdHJlYW1pbmcsCisgICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLAorI2Vsc2UKKyAgICBudWxs
cHRyLAorICAgIG51bGxwdHIsCisjZW5kaWYKKyAgICAmZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxP
YmplY3QsCit9OworCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBS
ZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4mJiBpbXBsKQorICAgIDogSlNET01HbG9iYWxP
YmplY3Qodm0sIHN0cnVjdHVyZSwgbm9ybWFsV29ybGQodm0pLCAmc19nbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSkKKyAgICAsIG1fd3JhcHBlZChXVEZNb3ZlKGltcGwpKQoreworfQorCit2b2lkIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94
eSogcHJveHkpCit7CisgICAgbV9wcm94eS5zZXQodm0sIHRoaXMsIHByb3h5KTsKKyAgICBtX3dy
YXBwZWQtPm1fd3JhcHBlciA9IEpTQzo6V2Vhayh0aGlzKTsKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSwgbV9wcm94eS5nZXQoKSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkp
KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KK3ZvaWQgSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2
aXNpdG9yKQoreworICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGNlbGwpOworICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBCYXNlOjp2aXNp
dENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNP
YmplY3QtPm1fcHJveHkpOworfQorCitERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZSk7CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAg
IHJldHVybiBpbmN1YmF0aW5nUmVhbG0oKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworfQor
Citjb25zdCBKU0RPTUdsb2JhbE9iamVjdCogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6
aW5jdWJhdGluZ1JlYWxtKCkgY29uc3QKK3sKKyAgICBhdXRvIGluY3ViYXRpbmdXcmFwcGVyID0g
bV93cmFwcGVkLT5tX2luY3ViYXRpbmdXcmFwcGVyLmdldCgpOworICAgIEFTU0VSVChpbmN1YmF0
aW5nV3JhcHBlcik7CisgICAgcmV0dXJuIGluY3ViYXRpbmdXcmFwcGVyOworfQorCit2b2lkIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAg
IHN0YXRpY19jYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKS0+SlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6fkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoKTsK
K30KKworYm9vbCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c1JpY2hTb3Vy
Y2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAgYXV0byBpbmN1YmF0
aW5nID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3Qp
LT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAgICByZXR1cm4gaW5jdWJhdGluZy0+Z2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUoKS0+c3VwcG9ydHNSaWNoU291cmNlSW5mbyhpbmN1YmF0aW5nKTsKK30KKwor
Ym9vbCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHQo
Y29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKK3sKKyAgICBhdXRvIGluY3ViYXRpbmcgPSBq
c0Nhc3Q8Y29uc3QgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3Vi
YXRpbmdSZWFsbSgpOworICAgIHJldHVybiBpbmN1YmF0aW5nLT5nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSgpLT5zaG91bGRJbnRlcnJ1cHRTY3JpcHQoaW5jdWJhdGluZyk7Cit9CisKK2Jvb2wgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dChjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gaW5jdWJhdGlu
ZyA9IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+
aW5jdWJhdGluZ1JlYWxtKCk7CisgICAgcmV0dXJuIGluY3ViYXRpbmctPmdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKCktPnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoaW5jdWJhdGlu
Zyk7Cit9CisKK1J1bnRpbWVGbGFncyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpqYXZh
U2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCit7CisgICAg
YXV0byBpbmN1YmF0aW5nID0ganNDYXN0PGNvbnN0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UqPihvYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAgICByZXR1cm4gaW5jdWJhdGluZy0+
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+amF2YVNjcmlwdFJ1bnRpbWVGbGFncyhpbmN1YmF0
aW5nKTsKK30KKworSlNDOjpTY3JpcHRFeGVjdXRpb25TdGF0dXMgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6c2NyaXB0RXhlY3V0aW9uU3RhdHVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU09iamVjdCogb3duZXIpCit7CisgICAgYXV0byBpbmN1YmF0aW5n
ID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT5p
bmN1YmF0aW5nUmVhbG0oKTsKKyAgICByZXR1cm4gaW5jdWJhdGluZy0+Z2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUoKS0+c2NyaXB0RXhlY3V0aW9uU3RhdHVzKGluY3ViYXRpbmcsIG93bmVyKTsKK30K
Kwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpyZXBvcnRWaW9sYXRpb25Gb3JV
bnNhZmVFdmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1N0cmlu
ZyogbXNnKQoreworICAgIGF1dG8gaW5jdWJhdGluZyA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJhdGluZ1JlYWxtKCk7CisgICAgaW5j
dWJhdGluZy0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+cmVwb3J0VmlvbGF0aW9uRm9yVW5z
YWZlRXZhbChpbmN1YmF0aW5nLCBtc2cpOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZUJhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AoSlNHbG9iYWxPYmplY3QmIG9iamVj
dCwgUmVmPEpTQzo6TWljcm90YXNrPiYmIHRhc2spCit7CisgICAgYXV0byBpbmN1YmF0aW5nID0g
anNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UqPigmb2JqZWN0KS0+aW5jdWJhdGlu
Z1JlYWxtKCk7CisgICAgaW5jdWJhdGluZy0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+cXVl
dWVNaWNyb3Rhc2tUb0V2ZW50TG9vcCgqaW5jdWJhdGluZywgV1RGTW92ZSh0YXNrKSk7Cit9CisK
K0pTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01H
bG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiByZWFsbUdsb2JhbFNjb3BlKQor
eworICAgIHJldHVybiB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHJlYWxtR2xvYmFsU2NvcGUp
OworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlJiByZWFsbUdsb2JhbFNjb3BlKQoreworICAgIEFTU0VSVChyZWFsbUdsb2JhbFNjb3BlLndy
YXBwZXIoKSk7CisgICAgcmV0dXJuICZyZWFsbUdsb2JhbFNjb3BlLndyYXBwZXIoKS0+cHJveHko
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY0MDhmODVhMjVkNDIxMDkzMTY5ODFjNTFmMTBjMjExYmY0NWIxYjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKKworY2xhc3MgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CitwdWJsaWM6Cisg
ICAgdXNpbmcgQmFzZSA9IEpTRE9NR2xvYmFsT2JqZWN0OworCisgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0M6OkpTQ2VsbCopOworCisgICAgREVDTEFSRV9JTkZPOworCisgICAgU2hhZG93UmVh
bG1HbG9iYWxTY29wZSYgd3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuICptX3dyYXBwZWQ7IH0KKwor
ICAgIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1YmF0aW5nUmVhbG0oKSBjb25zdDsKKyAg
ICBKU0RPTUdsb2JhbE9iamVjdCogaW5jdWJhdGluZ1JlYWxtKCk7CisKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6
CisgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZTsKKworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUlu
Zm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBib29sIHNob3VsZElu
dGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIGJv
b2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6UnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1l
RmxhZ3MoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBKU0M6OlNjcmlw
dEV4ZWN1dGlvblN0YXR1cyBzY3JpcHRFeGVjdXRpb25TdGF0dXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBxdWV1ZU1pY3JvdGFza1RvRXZl
bnRMb29wKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8SlNDOjpNaWNyb3Rhc2s+JiYpOworICAg
IHN0YXRpYyB2b2lkIHJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6SlNTdHJpbmcqKTsKKworcHJvdGVjdGVkOgorICAgIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGU+JiYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
Qzo6SlNQcm94eSopOworCisgICAgREVDTEFSRV9WSVNJVF9DSElMRFJFTjsKKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4gbV93cmFwcGVkOworfTsKKworaW5s
aW5lIEpTRE9NR2xvYmFsT2JqZWN0KiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjppbmN1
YmF0aW5nUmVhbG0oKQoreworICAgIHJldHVybiBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oY29uc3RfY2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcykt
PmluY3ViYXRpbmdSZWFsbSgpKTsKK30KKworLy8gQWx3YXlzIGlnbm9yZXMgdGhlIGV4ZWNTdGF0
ZSBhbmQgcGFzc2VkIGdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSBpcyBpdHNl
bGYgYSBnbG9iYWxPYmplY3QgYW5kIHdpbGwgYWx3YXlzIHVzZSBpdHMgb3duIHByb3RvdHlwZSBj
aGFpbi4KK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2Jh
bE9iamVjdCosIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiBzY29wZSkgeyBy
ZXR1cm4gc2NvcGUgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKnNj
b3BlKSA6IEpTQzo6anNOdWxsKCk7IH0KK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqc2NvcGUpIDogSlNDOjpqc051bGwoKTsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAKaW5kZXggYjlmYTQ5MThkMmQ1YTkwYjcwYjI0MjdkNDE0OGM1NWZmNzgyN2Ri
ZC4uNzczMDFhNTE1OTk1OTJkZTg3YjA3NjY1YjY3MTZlYWU1MGMwZmZjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cApAQCAtNzAsNiArNzAsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgIG51bGxwdHIs
CiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0
LAogfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29ya2VyR2xvYmFsU2NvcGVCYXNl
KEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2VyR2xv
YmFsU2NvcGU+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDI5MTQxOTM0MmIwOTIzNjljOTc4
MmVlMzJmNDljYzM4ODE4ODM1NTguLmE3OThlNDI2YWJmMjJlNzg1ZGJlM2FiYTdlNTA4YjNjYWIy
NTFiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNjYsNiArNjYsNyBAQCBjb25zdCBHbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibAogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0ciwKICNlbmRpZgorICAgIGRlcml2ZVNo
YWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpK
U1dvcmtsZXRHbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFJlZlB0cjxXb3JrbGV0R2xvYmFsU2NvcGU+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFkOTNjZTA5
MDJjNTdiMDU1NDg0YmI1NDM0NDE3Mzg5MzJkNDZiYTMuLjJmZDk2NWNmODVmOTg2OWQ1Y2U0MTZm
YWE5NTAzMzUwZjkxM2JkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIk1vZHVs
ZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgpA
QCAtNzQsNiArNzUsMTMgQEAgU2NyaXB0TW9kdWxlTG9hZGVyOjp+U2NyaXB0TW9kdWxlTG9hZGVy
KCkKICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogfQogCitVbmlxdWVSZWY8U2NyaXB0
TW9kdWxlTG9hZGVyPiBTY3JpcHRNb2R1bGVMb2FkZXI6OnNoYWRvd1JlYWxtTG9hZGVyKEpTQzo6
SlNHbG9iYWxPYmplY3QqIHJlYWxtR2xvYmFsKSBjb25zdAoreworICAgIGF1dG8gbG9hZGVyID0g
bWFrZVVuaXF1ZVJlZjxTY3JpcHRNb2R1bGVMb2FkZXI+KG1fY29udGV4dCwgbV9vd25lclR5cGUp
OworICAgIGxvYWRlci0+bV9zaGFkb3dSZWFsbUdsb2JhbCA9IHJlYWxtR2xvYmFsOworICAgIHJl
dHVybiBsb2FkZXI7Cit9CisKIHN0YXRpYyBib29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUg
aW1wb3J0ZXJNb2R1bGVLZXkpCiB7CiAgICAgcmV0dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3lt
Ym9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQoKTsKQEAgLTI0NCw3ICsyNTIs
OSBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNj
b3BlLCAiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKG1fb3du
ZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICBpZiAobV9zaGFkb3dSZWFsbUds
b2JhbCkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBtb2R1bGVSZWNvcmQtPmV2
YWx1YXRlKG1fc2hhZG93UmVhbG1HbG9iYWwsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9kZSkpOwor
ICAgIGVsc2UgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKICAgICAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUo
KSkKICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZnJhbWUtPnNjcmlwdCgp
LmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCwgYXdhaXRlZFZhbHVlLCBy
ZXN1bWVNb2RlKSk7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKaW5kZXggZTgyYThiYjQzMzcxZWE2Y2FiOGZjZmE4NDI0
ZDg3ZWIzYzk4NjMxOC4uYmEwYzI2MjJjMzRhYzA3NGQ2NmI5ODUwNWRmNzk0NzM3MDU1ZjcxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgK
QEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3duZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxl
TG9hZGVyKCk7CiAKKyAgICBVbmlxdWVSZWY8U2NyaXB0TW9kdWxlTG9hZGVyPiBzaGFkb3dSZWFs
bUxvYWRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiByZWFsbUdsb2JhbCkgY29uc3Q7CisKICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAK
ICAgICBKU0M6OklkZW50aWZpZXIgcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpK
U01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1w
b3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTczLDYgKzc1
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jl
c3BvbnNlVVJMTWFwOwogICAgIEhhc2hTZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9h
ZGVyczsKICAgICBPd25lclR5cGUgbV9vd25lclR5cGU7CisgICAgSlNDOjpKU0dsb2JhbE9iamVj
dCogbV9zaGFkb3dSZWFsbUdsb2JhbCB7IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVK
U0NsaWVudERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5jcHAKaW5kZXggNmQ0NmIxNTQzNTYxNjUyNDUwMTc5YjA3NDdjZGI4NzRiMmVkZWQ3
MS4uNDliMDJiZjBlNzYwMzBiMDZmZDU5YTc2ZmU1NjA1NDcxYTJmNmFkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTM4
LDYgKzM4LDcgQEAKICNpbmNsdWRlICJKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNSZW1vdGVET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgIkpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dpbmRvd1Byb3h5
LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNjgsNiArNjksNyBAQCBK
U1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVudERhdGEoVk0mIHZtKQogICAgICwgbV9oZWFwQ2VsbFR5
cGVGb3JKU1JlbW90ZURPTVdpbmRvdyhKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1JlbW90
ZURPTVdpbmRvdz4oKSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrZXJHbG9iYWxTY29w
ZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1dvcmtlckdsb2JhbFNjb3BlPigpKQogICAg
ICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVh
cENlbGxUeXBlOjpBcmdzPEpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+KCkpCisgICAgLCBtX2hl
YXBDZWxsVHlwZUZvckpTU2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6QXJnczxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4o
KSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oCmluZGV4IDgwMzY2YTBjN2Y3MjIwMjNmNzkzODE0YWY2ZWE1NzExZGE5ODQ3Nzcu
LjM3YzlhMWU2NjRkZjg1ZmJiZGU2MzMxNjkxMTQ4YzdjNjI2Njg3YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTEwMSw2ICsx
MDEsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVG
b3JKU1JlbW90ZURPTVdpbmRvdzsKICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxs
VHlwZUZvckpTV29ya2VyR2xvYmFsU2NvcGU7CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9o
ZWFwQ2VsbFR5cGVGb3JKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlOworICAgIEpTQzo6SXNvSGVh
cENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOwogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBD
ZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDUz
NTI0YTQyOGY2OGFjM2Y4MWQ5NDAyMzEyNjdiOTk4NzkyMTQ0ODMuLjc5MjBjOWI0NjIzMGNkNmM2
NWRhNDU0ZjBmNTJkOWZiMzdlNzc5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03NjYsNyArNzY2LDcgQEAgc3ViIEdl
dEN1c3RvbUlzUmVhY2hhYmxlCiBzdWIgSXNET01HbG9iYWxPYmplY3QKIHsKICAgICBteSAkaW50
ZXJmYWNlID0gc2hpZnQ7Ci0gICAgcmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRP
TVdpbmRvdyIgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8
fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckds
b2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZh
Y2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJU
ZXN0R2xvYmFsT2JqZWN0IjsKKyAgICByZXR1cm4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAi
RE9NV2luZG93IiB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ci
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2Vy
R2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVy
ZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEg
IlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlRl
c3RHbG9iYWxPYmplY3QiOwogfQogCiBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBl
CkBAIC03ODEsNiArNzgxLDIwIEBAIHN1YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUK
ICAgICByZXR1cm4gSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiB9CiAKK3N1YiBTaG91
bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKKworICAgIHJldHVybiAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCgpIHx8ICRpbnRl
cmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiOworfQorCitzdWIg
U2hvdWxkQ3JlYXRlV2l0aEpTUHJveHkKK3sKKyAgICBteSAoJGNvZGVHZW5lcmF0b3IsICRpbnRl
cmZhY2UpID0gQF87CisKKyAgICByZXR1cm4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNl
KCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNjb3BlIik7Cit9CisKIHN1
YiBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIKIHsKICAgICBteSAoJGludGVyZmFjZSwgJGluZGV4ZWRH
ZXR0ZXJPcGVyYXRpb24sICRpbmRleEV4cHJlc3Npb24pID0gQF87CkBAIC0yODc3LDcgKzI4OTEs
NyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuIik7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9i
YWxTY29wZSIpKSB7CisgICAgfSBlbHNpZiAoU2hvdWxkQ3JlYXRlV2l0aEpTUHJveHkoJGNvZGVH
ZW5lcmF0b3IsICRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsLCBKU0M6OkpTUHJveHkqIHByb3h5KVxu
Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVs
bCwgSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4odm0pKSAke2NsYXNzTmFtZX0odm0sIHN0
cnVjdHVyZSwgV1RGTW92ZShpbXBsKSk7XG4iKTsKQEAgLTI5MTksNyArMjkzMyw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpJbXBsZW1lbnRzSGFzSW5z
dGFuY2UgfCBKU0M6OkltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UifSA9IDEgaWYgJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAgICAgICAgIAogICAgICMgUHJvdG90eXBlCi0gICAg
dW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFBy
b3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xv
YmFsT2JqZWN0Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogcHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYp
O1xuIik7CiAgICAgfQpAQCAtMzE4Myw3ICszMTk3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgIyBDb25zdHJ1Y3RvcgogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8
fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwg
UmVmPCRpbXBsVHlwZT4mJiwgSlNXaW5kb3dQcm94eSopO1xuIik7Ci0gICAgfSBlbHNpZiAoJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxT
Y29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAi
V29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmIChTaG91bGRDcmVhdGVXaXRoSlNQ
cm94eSgkY29kZUdlbmVyYXRvciwgJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAkY2xhc3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwk
aW1wbFR5cGU+JiYpO1xuIik7CiAgICAgfSBlbHNpZiAoIU5lZWRzSW1wbGVtZW50YXRpb25DbGFz
cygkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFz
c05hbWUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpO1xuXG4iKTsKQEAgLTMx
OTMsNyArMzIwNyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJSZW1vdGVET01XaW5kb3ci
KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiwgSlNXaW5kb3dQcm94eSopO1xuIik7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIp
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xl
dEdsb2JhbFNjb3BlIikpIHsKKyAgICB9IGVsc2lmIChTaG91bGRDcmVhdGVXaXRoSlNQcm94eSgk
Y29kZUdlbmVyYXRvciwgJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTtcbiIp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7XG4iKTsKQEAgLTM5NjQsNiArMzk3OCw4IEBAIHN1YiBH
ZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ0ZvckV4cG9zZWQKICAgICAgICAg
cHVzaChAJGNvbmp1bmN0cywgImpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFs
T2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpIik7
CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIldvcmtlciIpIHsKICAgICAgICAgcHVzaChAJGNv
bmp1bmN0cywgImpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRy
IC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJHbG9iYWxTY29wZSgpIik7
CisgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIlNoYWRvd1JlYWxtIikgeworICAgICAgICBwdXNo
KEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmpl
Y3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUoKSIpOwogICAgIH0gZWxzaWYgKCRleHBvc2VkIGVxICJXb3JrbGV0IikgewogICAgICAg
ICBwdXNoKEAkY29uanVuY3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRnbG9i
YWxPYmplY3RQdHIgLiAiKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtsZXRHbG9i
YWxTY29wZSgpIik7CiAgICAgfSBlbHNpZiAoJGV4cG9zZWQgZXEgIkF1ZGlvV29ya2xldCIpIHsK
QEAgLTQ1MDMsNyArNDUxOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
ICRoYXNoU2l6ZSsrOwogICAgIH0KIAotICAgIGlmICghJGludGVyZmFjZS0+aXNOYW1lc3BhY2VP
YmplY3QpIHsKKyAgICBpZiAoIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIG15ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5ID0gIUlzRE9NR2xv
YmFsT2JqZWN0KCRpbnRlcmZhY2UpOwogCiAgICAgICAgICRvYmplY3QtPkdlbmVyYXRlSGFzaFRh
YmxlKCRjbGFzc05hbWUsICRoYXNoTmFtZSwgJGhhc2hTaXplLCBcQGhhc2hLZXlzLCBcQGhhc2hT
cGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBcJXJl
YWRXcml0ZUNvbmRpdGlvbmFscywgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpOwpAQCAtNDUxNiw3
ICs0NTMyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pO1xuIik7CiAgICAgfQogCi0g
ICAgaWYgKFByb3RvdHlwZUhhc1N0YXRpY1Byb3BlcnR5VGFibGUoJGludGVyZmFjZSkgJiYgIUlz
R2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpICYmICEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9i
amVjdCkgeworICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlKCRpbnRlcmZh
Y2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAmJiAhU2hvdWxkVXNlT3JkaW5h
cnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCAke2NsYXNzTmFtZX06OmluZm8oKSwg
JHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTtcbiIpOwogCiAgICAgICAg
IG15IEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBAcnVudGltZUVuYWJsZWRPcGVyYXRpb25z
OwpAQCAtNDU5Nyw3ICs0NjEzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAg
IGFzc2VydCgiSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCkgcmVxdWlyZXMg
c3RyaW5ncyB0d28gb3IgbW9yZSBjaGFyYWN0ZXJzIGxvbmciKSBpZiBsZW5ndGgoJHZpc2libGVJ
bnRlcmZhY2VOYW1lKSA8IDI7CiAKLSAgICBpZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2Jq
ZWN0KSB7CisgICAgaWYgKCFTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJm
YWNlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0NfVE9fU1RSSU5HX1RB
R19XSVRIT1VUX1RSQU5TSVRJT04oKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQpAQCAtNDYyOSw3ICs0NjQ1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NO
YW1lKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCksIHByb3h5KVxuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGlu
dGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgICAgfSBl
bHNpZiAoU2hvdWxkQ3JlYXRlV2l0aEpTUHJveHkoJGNvZGVHZW5lcmF0b3IsICRpbnRlcmZhY2Up
KSB7CiAgICAgICAgIEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlSW5JbXBsKCRpbnRl
cmZhY2VOYW1lKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRj
bGFzc05hbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBp
bXBsKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNz
TmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKVxuIik7CkBAIC00NjUwLDcgKzQ2NjYs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgInZvaWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTV2luZG93UHJv
eHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94
eSk7XG5cbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7CisgICAg
fSBlbHNpZiAoU2hvdWxkQ3JlYXRlV2l0aEpTUHJveHkoJGNvZGVHZW5lcmF0b3IsICRpbnRlcmZh
Y2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNQcm94eSogcHJveHkpXG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0sIHByb3h5KTtcblxuIik7CkBAIC00NzUwLDcgKzQ3NjYsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHZtLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQod3JhcHBlZCgpLm1lbW9yeUNvc3Qo
KSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1l
bW9yeUNvc3R9OwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAgIHVubGVz
cyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZh
Y2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmpl
Y3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5
cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCog
JHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CkBAIC03NTQxLDcgKzc1NTcsNyBA
QCBzdWIgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkb3V0cHV0QXJy
YXksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0gQF87CiAKLSAgICByZXR1cm4gaWYgJGludGVy
ZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisgICAgcmV0dXJuIGlmIFNob3VsZFVzZU9yZGluYXJ5
T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgJHByb3RvdHlwZUNsYXNzTmFt
ZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCkBAIC03ODE4LDcgKzc4MzQsNyBAQCBzdWIg
R2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoISRnZW5lcmF0aW5nTGVn
YWN5RmFjdG9yeUZ1bmN0aW9uIGFuZCAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CiAgICAgICAg
IG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+cGFyZW50VHlwZS0+bmFt
ZTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke3BhcmVudENsYXNz
TmFtZX06OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTtcbiIpOwotICAgIH0gZWxz
aWYgKCRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgfSBlbHNpZiAoU2hvdWxk
VXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJv
dG90eXBlKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9w
cmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNWI4OTMxM2ZlNWNhZWZiODkxMmZiNDM2ZjE0NzY4MmYw
NDc1NzdiYS4uNzQxYTU4YjE5ZjEyOGRlNGYwOWIxY2I1NjZjZjUxYTkxZWQ3ZjhiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwK
QEAgLTQ0LDYgKzQ0LDcgQEAgbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CiBteSAkY29uc3Ry
dWN0b3JzSGVhZGVyRmlsZTsKIG15ICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZTsKIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsK
IG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CkBAIC02NSw3ICs2
Niw4IEBAIG15IEBzdXBwb3J0ZWRHbG9iYWxDb250ZXh0cyA9ICgKICAgICAiRGVkaWNhdGVkV29y
a2VyIiwKICAgICAiU2VydmljZVdvcmtlciIsCiAgICAgIlBhaW50V29ya2xldCIsCi0gICAgIkF1
ZGlvV29ya2xldCIKKyAgICAiQXVkaW9Xb3JrbGV0IiwKKyAgICAiU2hhZG93UmVhbG0iLAogKTsK
IAogIyBUb2dnbGUgdGhpcyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBmYXN0IHJlZ3VsYXIgZXhwcmVz
c2lvbiBiYXNlZCAicGFyc2luZyIgdXNlZApAQCAtODIsNiArODQsNyBAQCBHZXRPcHRpb25zKCdk
ZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ2NvbnN0cnVjdG9yc0hlYWRlckZp
bGU9cycgPT4gXCRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlLAogICAgICAgICAgICAnd2luZG93Q29u
c3RydWN0b3JzRmlsZT1zJyA9PiBcJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAg
ICd3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdzaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAnZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlPXMnID0+IFwkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
LAogICAgICAgICAgICAnc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1z
JyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAg
ICAgICdzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCkBAIC05OCw2ICsxMDEsNyBAQCBk
aWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3JvcyB1c2luZyAtLWRlZmluZXMuJykgdW5sZXNz
IGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNp
bmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3aW5kb3dD
b25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5n
IC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNpZnkgYW4g
b3V0cHV0IGZpbGUgdXNpbmcgLS1zaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1kZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lm
eSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1z
aGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xMTMsNiArMTE3
LDcgQEAgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpOwogJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJGNvbnN0cnVjdG9yc0hlYWRlckZpbGUpOwogJHdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKTsKICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2lu
UGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKQEAgLTE1
NCw2ICsxNTksNyBAQCBteSAlZGljdGlvbmFyeURlcGVuZGVuY2llczsKIG15ICVzdXBwbGVtZW50
YWxzOwogbXkgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgPSAiIjsKIG15ICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
PSAiIjsKQEAgLTI3Miw2ICsyNzgsOCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBr
ZXlzICVpZGxGaWxlTmFtZUhhc2gpIHsKICAgICAgICAgICAgICAgICAkd2luZG93Q29uc3RydWN0
b3JzQ29kZSAuPSAkd2luZG93QWxpYXNlcyBpZiAkd2luZG93QWxpYXNlczsKICAgICAgICAgICAg
IH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJXb3JrZXIiKSB7CiAgICAgICAgICAgICAgICAg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKKyAg
ICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJTaGFkb3dSZWFsbSIpIHsKKyAg
ICAgICAgICAgICAgICAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0g
JGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAi
RGVkaWNhdGVkV29ya2VyIikgewogICAgICAgICAgICAgICAgICRkZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9
IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiU2VydmljZVdvcmtlciIpIHsKQEAgLTMwMyw2ICsz
MTEsNyBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxlTmFtZUhh
c2gpIHsKICMgR2VuZXJhdGUgcGFydGlhbCBpbnRlcmZhY2VzIGZvciBDb25zdHJ1Y3RvcnMuCiBH
ZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRPTVdpbmRvdyIsICR3aW5kb3dDb25zdHJ1Y3RvcnND
b2RlLCAkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2Uo
Ildvcmtlckdsb2JhbFNjb3BlIiwgJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwg
JHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7
CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwg
JGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGRlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlIiwg
JHNoYXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNoYXJlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZWUzN2Q0MWRkYmNmZDczYTIzYzJhNjlkYzMzZWE4Y2Zi
ZGNkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApAQCAtMCwwICsxLDIwMiBAQAor
LyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2pl
Y3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5n
cy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJKU0RPTUF0dHJpYnV0
ZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCisjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiSlNFeHBvc2VkU3Rhci5oIgorI2luY2x1ZGUgIkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBBbmFseXpl
ci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1Nsb3RWaXNpdG9yTWFjcm9zLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Vi
c3BhY2VJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
b2ludGVyUHJlcGFyYXRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKKy8vIEF0dHJpYnV0ZXMKKworc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29u
c3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3Rvcik7CisKK3VzaW5nIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNv
bnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPjsKKworLyogSGFzaCB0YWJsZSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRleFs1XSA9
IHsKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAg
ICB7IDAsIDQgfSwKKyAgICB7IDEsIC0xIH0sCit9OworCisKK3N0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZVZhbHVlc1tdID0KK3sKKyAgICB7
ICJFeHBvc2VkU3RhciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRT
dGFyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZTo6aW5mbygpLCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlVGFibGVJbmRleCB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlNoYWRv
d1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9
OworCit0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0odm0pOworICAgIHJl
dHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCk7Cit9CisKK3RlbXBsYXRlPD4gdm9p
ZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3Bl
cnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSk7CisgICAgSlNTdHJpbmcqIG5hbWVTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0s
ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIl9zKTsKKyAgICBtX29yaWdpbmFsTmFtZS5zZXQodm0s
IHRoaXMsIG5hbWVTdHJpbmcpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bmFtZSwgbmFtZVN0cmluZywgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdsb2JhbE9iamVjdC5nZXRQcm90b3R5cGVEaXJlY3Qodm0p
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSk7Cit9CisK
K2NvbnN0IENsYXNzSW5mbyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnNfaW5mbyA9IHsgIlNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAmSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKSB9OworCitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OkpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8U2hhZG93UmVhbG1H
bG9iYWxTY29wZT4mJiBpbXBsKQorICAgIDogSlNET01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGU+KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpCit7Cit9CisKK3ZvaWQgSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkqIHByb3h5
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7CisKKyAgICBzdGF0aWNf
YXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2Jq
ZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURP
TU9iamVjdC4iKTsKKworfQorCitKU1ZhbHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0
Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVE
T01Db25zdHJ1Y3RvciwgRE9NQ29uc3RydWN0b3JJRDo6U2hhZG93UmVhbG1HbG9iYWxTY29wZT4o
dm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKK30K
Kwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNl
bGwpCit7CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp+SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCk7Cit9
CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CisgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQorICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOworfQorCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgdGhpc09iamVjdCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIEpTRXhwb3Nl
ZFN0YXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAm
dGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBh
dHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZT46OmdldDxqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfRXhwb3NlZFN0YXJDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRl
TmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHRoaXNPYmpl
Y3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIHJldHVy
biBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQoreworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPjo6Z2V0PGpzU2hhZG93
UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOworfQorCitK
U0M6Oklzb1N1YnNwYWNlKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnN1YnNwYWNlRm9ySW1w
bChKU0M6OlZNJiB2bSkKK3sKKyAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpT
Vk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisgICAgYXV0byYgc3BhY2VzID0gY2xpZW50
RGF0YS5zdWJzcGFjZXMoKTsKKyAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFj
ZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuZ2V0KCkpCisgICAgICAgIHJldHVybiBzcGFjZTsK
KyAgICBzcGFjZXMubV9zdWJzcGFjZUZvclNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCBjbGllbnREYXRhLm1f
aGVhcENlbGxUeXBlRm9ySlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLCBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGUpOworICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmdldCgpOworSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJs
ZS1jb2RlIikKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQor
ICAgIHZvaWQgKCpteVZpc2l0T3V0cHV0Q29uc3RyYWludCkoSlNDOjpKU0NlbGwqLCBKU0M6OlNs
b3RWaXNpdG9yJikgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnZpc2l0T3V0cHV0Q29uc3Ry
YWludHM7CisgICAgdm9pZCAoKmpzQ2VsbFZpc2l0T3V0cHV0Q29uc3RyYWludCkoSlNDOjpKU0Nl
bGwqLCBKU0M6OlNsb3RWaXNpdG9yJikgPSBKU0M6OkpTQ2VsbDo6dmlzaXRPdXRwdXRDb25zdHJh
aW50czsKKyAgICBpZiAobXlWaXNpdE91dHB1dENvbnN0cmFpbnQgIT0ganNDZWxsVmlzaXRPdXRw
dXRDb25zdHJhaW50KQorICAgICAgICBjbGllbnREYXRhLm91dHB1dENvbnN0cmFpbnRTcGFjZXMo
KS5hcHBlbmQoc3BhY2UpOworSUdOT1JFX1dBUk5JTkdTX0VORAorSUdOT1JFX1dBUk5JTkdTX0VO
RAorICAgIHJldHVybiBzcGFjZTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6
OmFuYWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikKK3sKKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSo+KGNl
bGwpOworICAgIGFuYWx5emVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgICAgIGFuYWx5emVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKKyAg
ICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFseXplcik7Cit9CisKK2Jvb2wgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgQWJzdHJhY3RTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsK
KyAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVy
OjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4
dCkKK3sKKyAgICBhdXRvKiBqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgPSBzdGF0aWNfY2FzdDxK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CisgICAg
YXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7Cisg
ICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUtPndyYXBw
ZWQoKSwganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKK30KKworU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nh
c3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKj4odm0sIHZhbHVlKSkKKyAgICAgICAgcmV0dXJu
ICZ3cmFwcGVyLT53cmFwcGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2ZlMjNmMzA4MDQwMTMy
MDNlMzFhMWI0MWJlYTZkNTk1YTg3MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCkBA
IC0wLDAgKzEsODkgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBv
cGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkg
Z2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
OworCitjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUgOiBwdWJsaWMgSlNET01XcmFwcGVy
PFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNE
T01XcmFwcGVyPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OworICAgIHN0YXRpYyBKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCwgSlNDOjpKU1Byb3h5KiBw
cm94eSkKKyAgICB7CisgICAgICAgIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+KHZt
KSkgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkp
OworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm94eSk7CisgICAgICAgIHJldHVy
biBwdHI7CisgICAgfQorCisgICAgc3RhdGljIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHRvV3Jh
cHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Qzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6R2xvYmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMgSlNDOjpJ
c29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCisgICAgeworICAgICAgICBpZiBj
b25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6Q29uY3VycmVudGx5KQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdWJzcGFjZUZvckltcGwo
dm0pOworICAgIH0KKyAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBs
KEpTQzo6Vk0mIHZtKTsKKyAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6
OkhlYXBBbmFseXplciYpOworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKK3Byb3RlY3RlZDoKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlND
OjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYpOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopOworfTsKKwor
Y2xhc3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlT3duZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgeworcHVibGljOgorICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpBYnN0
cmFjdFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKKyAgICB2b2lkIGZpbmFsaXpl
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOworfTsKKwor
aW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxk
JiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSopCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVyPiBvd25lcjsKKyAgICByZXR1cm4gJm93bmVy
LmdldCgpOworfQorCitpbmxpbmUgdm9pZCogd3JhcHBlcktleShTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlKiB3cmFwcGFibGVPYmplY3QpCit7CisgICAgcmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKK30K
KworCit0ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8U2hhZG93
UmVhbG1HbG9iYWxTY29wZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZTsKKyAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gU2hhZG93UmVh
bG1HbG9iYWxTY29wZSo7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNlODEyZjA0ODY0NjZjZDhlNGQ5NzE2MmI0Y2RkM2Y2MzJkMmRlODgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisg
ICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVkIGZvciBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAg
c2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5oIGFuZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
Y3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTgxMmYwNDg2NDY2Y2Q4ZTRk
OTcxNjJiNGNkZDNmNjMyZDJkZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRv
IGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmggYW5kCisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNw
cCB3ZXJlIGNyZWF0ZWQgZm9yIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
LCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2Vu
ZXJhdGUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NzZkZDdmMWZlN2E5YWNkOTY5
ZTYwY2EwZThkOWNmZWJlMTRmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKQEAgLTAsMCAr
MSwyIEBACitbRXhwb3NlZD1TaGFkb3dSZWFsbV0gaW50ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iY2U0ODcxMzE2ZDZhMDczNDI3NmQzYjRlOTQ5OGY3MDRmNmM1
YTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBAIC0wLDAgKzEsNCBA
QAorcGFydGlhbCBpbnRlcmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgICAgYXR0cmli
dXRlIEV4cG9zZWRTdGFyQ29uc3RydWN0b3IgRXhwb3NlZFN0YXI7CisgICAgYXR0cmlidXRlIFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBw
bGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKaW5kZXggYzEyMzIxNTI0NjFhNmMy
ZWQyZTU0ODBhMmU3YzZkYjY4ODRiYTQ2My4uZTMxZTBmNTgyM2NlY2RjNTBjY2JiYzRmN2YyNjE2
NzJhYzBlNzEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKQEAgLTIxLDYg
KzIxLDEwIEBAIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6IFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIERPTVNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOiBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bAogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbDoKK0pTU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAor
RE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAorV2ViRE9NU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oOiBTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5pZGw6CiBKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbAogRE9NU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDogU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXZWJET01TaGFyZWRXb3JrZXJH
bG9iYWxTY29wZS5oOiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDNmNTk0MDg4
YWUxODk4ZmI5NGU5ZThmNWM3Yjg0NWQzNTU3NWQ4OTkuLjBjYjZjOGRjNDUwZWNhMmVkMTAzMjFl
YTRjN2VlMWIyN2Q4NmRhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
V29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQpAQCAtMzEyLDYgKzMxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ2FsbGVycyBz
aG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4KICAgICB2
aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2Fs
bFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlv
blRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9y
OjpTY3JpcHRDYWxsU3RhY2s+JiYpID0gMDsKKwogICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2ZW50
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVkU2Ny
aXB0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlhNWVjZGRiYzM0NmZiOWMxNGJmOTc2MzQ0ODgwMjRiODJhNzdlZDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
Y3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVk
ZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9h
ZGVyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSk7CisKK1JlZjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlOjpjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIHdyYXBwZXIsIFNjcmlwdE1vZHVsZUxvYWRl
ciogbG9hZGVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUod3JhcHBlciwgbG9hZGVyKSk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OlNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNET01HbG9iYWxPYmplY3QqIHdyYXBwZXIsIFNjcmlwdE1v
ZHVsZUxvYWRlciogbG9hZGVyKQorICAgIDogbV9pbmN1YmF0aW5nV3JhcHBlcih3cmFwcGVyKQor
ICAgICwgbV9wYXJlbnRMb2FkZXIobG9hZGVyKQoreworfQorCitTY3JpcHRNb2R1bGVMb2FkZXIm
IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcigpCit7CisgICAgaWYgKG1fbW9k
dWxlTG9hZGVyKQorICAgICAgICByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOworCisgICAgYXV0byB3
cmFwcGVyID0gbV93cmFwcGVyLmdldCgpOworICAgIEFTU0VSVCh3cmFwcGVyKTsKKworICAgIG1f
bW9kdWxlTG9hZGVyID0gbV9wYXJlbnRMb2FkZXItPnNoYWRvd1JlYWxtTG9hZGVyKHdyYXBwZXIp
Lm1vdmVUb1VuaXF1ZVB0cigpOworICAgIHJldHVybiAqbV9tb2R1bGVMb2FkZXI7Cit9CisKK1No
YWRvd1JlYWxtR2xvYmFsU2NvcGU6On5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkgPSBkZWZhdWx0
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3YTI1ZDBiOWIzMTk5ZjYxMDNkYTU5NGYx
OGNhYTdlNzY0NjczNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1dlYWsuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
Y2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOworCitjbGFzcyBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZG93UmVhbG1HbG9iYWxTY29wZT4geworICAgIGZyaWVu
ZCBjbGFzcyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoU2hhZG93UmVhbG1HbG9iYWxTY29wZSk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCosIFNj
cmlwdE1vZHVsZUxvYWRlciopOworICAgIH5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCk7CisKKyAg
ICBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiBzZWxmKCk7CisgICAgU2NyaXB0TW9kdWxlTG9hZGVy
JiBtb2R1bGVMb2FkZXIoKTsKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiB3cmFw
cGVyKCk7CisKK3Byb3RlY3RlZDoKKyAgICBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTRE9NR2xv
YmFsT2JqZWN0KiwgU2NyaXB0TW9kdWxlTG9hZGVyKik7CisKK3ByaXZhdGU6CisgICAgSlNDOjpX
ZWFrPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2luY3ViYXRpbmdXcmFwcGVyOworICAgIFNjcmlwdE1v
ZHVsZUxvYWRlciogbV9wYXJlbnRMb2FkZXIgeyBudWxscHRyIH07CisgICAgSlNDOjpXZWFrPEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U+IG1fd3JhcHBlcjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKK307CisKK2lubGluZSBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlJiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpzZWxmKCkKK3sKKyAg
ICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
KiBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp3cmFwcGVyKCkKK3sKKyAgICByZXR1cm4gbV93cmFw
cGVyLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmM0M2I1OGJm
MjE2MmIxODM5ODMwYTBiMzEwM2RiNTliNDhmMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFeHBvc2VkPVNoYWRvd1JlYWxtLAorICAgIEpTTGVnYWN5UGFyZW50PUpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UsCisgICAgR2xvYmFsPVNoYWRvd1JlYWxtLAorICAgIExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0LAorXSBpbnRlcmZhY2UgU2hhZG93UmVhbG1HbG9iYWxTY29wZSB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgc2VsZjsKK307CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjY2ZjVmMDNk
N2ViYzUyODA2ZTU1YzYwMTcyMTQxNDczOWE5MzM3Mi4uNWU2YzkxNTg1ZDE0NGEzYWVjNTNmYWQ1
YzhjNWFlYjA3ZjM0MjdhOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTIxICBKb3NlcGggR3JpZWdvICA8
amdyaWVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBVc2UgV2ViQ29y
ZSBtb2R1bGUgbG9hZGVycyBmb3Igc2hhZG93IHJlYWxtIGltcG9ydFZhbHVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
YmluZGluZ3MvbWFpbi5weToKKyAgICAgICAgKEJpbmRpbmdzVGVzdHMuZ2VuZXJhdGVfc3VwcGxl
bWVudGFsX2RlcGVuZGVuY3kpOgorICAgICAgICAoQmluZGluZ3NUZXN0cy5tYWluKToKKwogMjAy
Mi0wMS0xOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0VXU10gVXNlIHRva2VuIHdoZW4gcHJvY2Vzc2luZyBob29rCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMDIyZDA5ZTg2OTMxMWYwMDQ0MzQwOTY5Y2EzNDk4NWNi
NzIwZWE1Ny4uY2U4YjUwNjMxMGYxOTdkMjUzYTViNTE4NTlmMTdkNmUzMTlkNWE3YiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFz
cyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAg
ICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lf
ZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUp
OgorICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9k
aXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtl
ZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBh
dWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5t
a3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJl
Y3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0
KGlucHV0X2ZpbGUpCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAg
ICAgICAgICAgICAnLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxfbWFr
ZWZpbGVfZGVwZW5kZW5jeV9maWxlLAogICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3RydWN0
b3JzRmlsZScsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUnLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LAogICAgICAgICAgICAgICAgJy0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAg
ICAgICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
Jywgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAg
ICAgICAgJy0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhcmVk
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCkBAIC0xOTksNiArMjAwLDcgQEAg
Y2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVu
ZGVuY3lfZmlsZW5hbWUgPSAnU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCcKICAgICAgICAg
ZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnRE9NV2luZG93Q29uc3RydWN0b3Jz
LmlkbCcKICAgICAgICAgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0g
J1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAgICAgc2hhZG93cmVhbG1n
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlbmFtZSA9ICdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5pZGwnCiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAg
ICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKQEAgLTIxMyw2ICsyMTUsNyBA
QCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVw
ZW5kZW5jeV9maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9k
ZXBlbmRlbmN5X2ZpbGVuYW1lKQogICAgICAgICB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgZG9tX3dpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAg
ICAgIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rv
cnksIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgc2hh
ZG93cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3Jr
X2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5
LCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAg
ZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpv
aW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2Rp
cmVjdG9yeSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1l
KQogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSkKICAgICAgICAgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0
cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2hhcmVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGVuYW1lKQpAQCAtMjIxLDcgKzIyNCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0
aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1
dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFt
ZSkKICAgICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5q
b2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9k
aXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAg
ICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3Rv
cnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9k
ZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNo
YXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9z
dXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBl
bmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRv
d19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAg
ICAgICAgIHByaW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5j
eSBmaWxlLicpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAg
ICAgICAgICAgcmV0dXJuIC0xCkBAIC0yMzMsNiArMjM2LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0
czoKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAg
IGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9y
eSwgaW5wdXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5h
bWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAg
ICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0
b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAg
ICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3Jr
X2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQg
PSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxz
Y29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4NjhlMGRiMzQxNGQwOTYw
ZjlkOTdiODM1M2ZlMzRmN2FhMGYzNjIuLjg4YWMyMzViZDQ1NDMxM2UyY2ZkNTc3MDYzNTY2OTU1
ZmJlNjc5MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdyaWVn
byAgPGpncmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdl
YkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAg
ICAgSW1wcm92ZSB0ZXN0IGNvdmVyYWdlIGEgYml0IGZvciBzaGFkb3cgcmVhbG1zLCBlc3BlY2lh
bGx5IHJ1bm5pbmcKKyAgICAgICAgbmVzdGVkLCBpbiB3b3JrZXIgY29udGV4dHMsIG9yIGluIGlm
cmFtZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBqcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL1NoYWRv
d1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hh
ZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVh
bG0td29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvU2hhZG93UmVhbG0t
d29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFs
bS1ldmFsdWF0ZS5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnRfY2xvc2VkX29wZW5lcik6Cisg
ICAgICAgIChwcm9taXNlX3Rlc3QuYXN5bmMgdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3Rz
L1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKHdyYXBwZWRMb2cp
OgorICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5jIHQpOgorICAgICAgICAqIGpzL3NjcmlwdC10
ZXN0cy9leGFtcGxlLW1vZHVsZS5qczogQWRkZWQuCisgICAgICAgIChjaGVjayk6CisgICAgICAg
IChsb2dfZXF1YWwpOgorICAgICAgICAoY2hlY2tfbmVzdGVkKToKKyAgICAgICAgKHNldFZhbHVl
KToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvc2hhZG93LXJlYWxtLXdvcmtlci5qczogQWRk
ZWQuCisgICAgICAgIChhc3NlcnRfZXF1YWxzKToKKyAgICAgICAgKGFzeW5jIHRlc3QpOgorICAg
ICAgICAoYXN5bmMgYXdhaXQpOgorCiAyMDIyLTAxLTIxICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBXUFQgdmVyc2lvbiBvZiBjc3MvY3NzLWNhc2NhZGUvcGFy
c2luZy9sYXllci1pbXBvcnQtcGFyc2luZy5odG1sIGNyYXNoZXMgd2l0aCBudWxscHRyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaWZyYW1lLXNoYWRvdy1yZWFsbS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaWZyYW1lLXNoYWRvdy1y
ZWFsbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkNzk5MmQzN2IzYmZhMjU0NGE4NjkwZjMx
YjljZjU3MWFlMDFkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9pZnJhbWUtc2hhZG93LXJlYWxtLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0IHRoYXQgc2hhZG93IHJlYWxtcyBjYW4gbG9hZCBtb2R1bGVzIGZyb20gZGlmZmVyZW50LW9y
aWdpbiBpZnJhbWUgY29udGV4dHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgZXZlbnQuZGF0YSBpcyA0MgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9p
ZnJhbWUtc2hhZG93LXJlYWxtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaWZy
YW1lLXNoYWRvdy1yZWFsbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZDliNWI0MTYwZmJhZGM1NzI2ZDhl
MmM3MjUyYzU5NGE1NGE1M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvaWZyYW1lLXNoYWRvdy1yZWFsbS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8Ym9keT4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cisg
ICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9taXNjL3Jlc291cmNlcy9pZnJh
bWUtc2hhZG93LXJlYWxtLXN1YmZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxzY3JpcHQ+Cisg
ICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgc2hhZG93IHJlYWxtcyBjYW4gbG9hZCBtb2R1bGVz
IGZyb20gZGlmZmVyZW50LW9yaWdpbiBpZnJhbWUgY29udGV4dHMiKTsKKworICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICAgICAgIHNob3VsZEJlKCJldmVudC5kYXRhIiwgIjQy
Iik7CisgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
aWZyYW1lLXNoYWRvdy1yZWFsbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3Jlc291cmNlcy9pZnJhbWUtc2hhZG93LXJlYWxtLXN1YmZyYW1lLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGFmZDMyZTIwMDViMjYwMWFjYjcyMTQ4YWM0ZjYyNDkzOTFiMjEzOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXNo
YWRvdy1yZWFsbS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxib2R5PgorICAgIDxz
Y3JpcHQ+CisgICAgIG9ubG9hZCA9IGFzeW5jIGZ1bmN0aW9uICgpCisgICAgIHsKKyAgICAgICAg
IHZhciBzciA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAgICAgICAgdmFyIGJsb29wX3ZhbCA9IGF3
YWl0IHNyLmltcG9ydFZhbHVlKCIuL2lmcmFtZS1zaGFkb3ctcmVhbG0uanMiLCAiYmxvb3AiKTsK
KyAgICAgICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYmxvb3BfdmFsLCAiKiIpOworICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0uanMgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODJiZDMyNTYzZjQ3MjNjY2U5NjIwZTM2OWUxMzEzZjJmN2EzYjIyZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXNo
YWRvdy1yZWFsbS5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgY29uc3QgYmxvb3AgPSA0MjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNjk4MDQ5NzNmZGVhYWNjZmI0ZGEzM2I2M2ZkYjkzODI1Y2Y3NTFkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2Yg
U2hhZG93UmVhbG0ucHJvdG90eXBlLmV2YWx1YXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCisKK1BBU1Mgd2luZG93LmNsb3NlKCkgYWZmZWN0cyBuYW1lIHRhcmdldGluZyBpbW1l
ZGlhdGVseQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1ldmFsdWF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44OTk0NzE0NTc5ZTdlODU2MDM1N2VkYzI1NTgyZGY3YTg0OTBmMDExCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbApAQCAtMCww
ICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYyA9Li4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3Rv
dHlwZS5ldmFsdWF0ZSIpOworCisgICAgZnVuY3Rpb24gYXNzZXJ0X2Nsb3NlZF9vcGVuZXIodywg
Y2xvc2VkLCBvcGVuZXIpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3LmNsb3NlZCwgY2xvc2Vk
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3Lm9wZW5lciwgb3BlbmVyKTsKKyAgICB9CisKKyAg
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNvbnN0IG9wZW5lZSA9IHdpbmRv
dy5vcGVuKCIiLCAiZ3JlYXRuYW1lIik7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0g
PSBuZXcgU2hhZG93UmVhbG0oKTsKKworICAgICAgICAvLyBzZXR1cCByZWFsbSBuZXN0ZWQgaW4g
b3V0ZXJTaGFkb3dSZWFsbQorICAgICAgICBvdXRlclNoYWRvd1JlYWxtLmV2YWx1YXRlKCJ2YXIg
aW5uZXJSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOyIpOworICAgICAgICBvdXRlclNoYWRvd1Jl
YWxtLmV2YWx1YXRlKCJ2YXIgY2FsbEluSW5uZXIgPSBpbm5lclJlYWxtLmV2YWx1YXRlKFwiKGNi
KSA9PiBjYigpXCIpOyIpOworCisgICAgICAgIGNvbnN0IGNhbGxJbk5lc3RlZFJlYWxtID0gb3V0
ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgiKGNiKSA9PiBjYWxsSW5Jbm5lcihjYikiKTsKKworICAg
ICAgICAvLyBjYWxsIGNsb3NlIHdpbmRvdyB0d28gbGV2ZWxzIGRlZXAKKyAgICAgICAgYXNzZXJ0
X2Nsb3NlZF9vcGVuZXIob3BlbmVlLCBmYWxzZSwgc2VsZik7CisgICAgICAgIGNhbGxJbk5lc3Rl
ZFJlYWxtKCgpID0+IG9wZW5lZS5jbG9zZSgpKTsKKyAgICAgICAgLy8gb3BlbmVlLmNsb3NlKCkK
KyAgICAgICAgYXNzZXJ0X2Nsb3NlZF9vcGVuZXIob3BlbmVlLCB0cnVlLCBzZWxmKTsKKyAgICB9
LCAid2luZG93LmNsb3NlKCkgYWZmZWN0cyBuYW1lIHRhcmdldGluZyBpbW1lZGlhdGVseSIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9T
aGFkb3dSZWFsbS1pZnJhbWUtZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLWlmcmFtZS1kZXRhY2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZTJjOGUx
YmM2ZjAzZDNmNzJlMTk1Mjk1NzRiY2UwNDIyNzk0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtZGV0YWNoLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE1IEBACitUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBTaGFkb3cgUmVh
bG0gb2JqZWN0cyB0aGF0IGVzY2FwZSB0aGVpciBvcmlnaW5hdGluZyBpZnJhbWUKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1tvYmplY3QgV2luZG93XQorW29iamVjdCBXaW5kb3dd
CitkZXRhY2hpbmcgaWZyYW1lCitbb2JqZWN0IFNoYWRvd1JlYWxtXQorZHJvcHBpbmcgcmVhbG0g
dmFsdWUKK1BBU1MgKCkgPT4gY2hlY2tGbjIod3JhcHBlZExvZygic2hhZG93UmVhbG0iKSkgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1kZXRhY2guaHRt
bCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1kZXRhY2guaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNDY1MWYwODk3ZDI2MzdkNDFhZWU4YTQzMGJiZThjYTJmY2I5YzRlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLWRldGFjaC5odG1sCkBA
IC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFs
bT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJy
ZXNvdXJjZXMvc2hhZG93LXJlYWxtLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxzY3JpcHQgc3Jj
ID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyBkZXNj
cmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93IFJlYWxt
IG9iamVjdHMgdGhhdCBlc2NhcGUgdGhlaXIgb3JpZ2luYXRpbmcgaWZyYW1lIik7Cisgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgZnVuY3Rpb24gd3JhcHBlZExvZyhwcmVmaXgpIHsK
KyAgICAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpIHsKKyAgICAgICAgIGRlYnVnKHByZWZpeCArICI6
ICIgKyBtc2cpOworICAgICB9OworIH0KKworIGxldCBmcmFtZSA9IHdpbmRvdy5mcmFtZXNbMF07
CisgZGVidWcoZnJhbWUpOworIGZyYW1lLm9ubG9hZCA9IGFzeW5jICgpID0+IHsKKyAgICAgZGVi
dWcoZnJhbWUpOworICAgICBsZXQgcmVhbG0gPSBmcmFtZS5yZWFsbTsKKyAgICAgZGVidWcoImRl
dGFjaGluZyBpZnJhbWUiKTsKKyAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlm
cmFtZSIpWzBdLnJlbW92ZSgpCisgICAgICR2bS5nYygpOworICAgICBmcmFtZSA9IG51bGw7Cisg
ICAgIGRlYnVnKHJlYWxtKTsKKyAgICAgY29uc3QgY2hlY2tGbjIgPSBhd2FpdCByZWFsbS5pbXBv
cnRWYWx1ZSgiLi9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hlY2siKTsKKyAgICAg
ZGVidWcoImRyb3BwaW5nIHJlYWxtIHZhbHVlIikKKyAgICAgcmVhbG0gPSBudWxsOworICAgICAk
dm0uZ2MoKTsKKyAgICAgc2hvdWxkQmUoKCkgPT4gY2hlY2tGbjIod3JhcHBlZExvZygic2hhZG93
UmVhbG0iKSksCisgICAgICAgICAgICAgICJ0cnVlIik7CisgICAgIGZpbmlzaEpTVGVzdCgpOwor
IH0KKworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5kYm94ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0taWZyYW1lLXNhbmRib3hlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzI4YWZhNjNlMmMyODFlMGU0MDVkYjAwYTlmYTQ1NWZmMzVlODk5NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5kYm94ZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3QgdG8gZW5zdXJlIFNoYWRvd1JlYWxtcyBydW5u
aW5nIGluIGEgc2FuZGJveGVkIGlmcmFtZSBkbyBub3QgYWNjZXNzIHRoZSBwYXJlbnQgd2luZG93
IG9iamVjdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworYXR0YWNoZWQgZnJhbWVz
OiAxCitkZXRhY2hpbmcgaWZyYW1lCitkcm9wcGluZyByZWFsbSB2YWx1ZQorUEFTUyAoKSA9PiBj
aGVja0ZuMih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLXNhbmRib3hlZC5odG1sIGIvTGF5b3V0VGVzdHMv
anMvU2hhZG93UmVhbG0taWZyYW1lLXNhbmRib3hlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlYjE2ZDZh
OWU2YjhlZmRlMzBkOTcyNDZlMWY3MDU3ZDhmODhhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2FuZGJveGVkLmh0bWwKQEAgLTAsMCArMSwz
OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAt
LT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3NoYWRv
dy1yZWFsbS1pZnJhbWUuaHRtbCIgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyI+PC9pZnJhbWU+Cis8
c2NyaXB0PgorIGRlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBTaGFkb3dSZWFsbXMgcnVubmlu
ZyBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZG8gbm90IGFjY2VzcyB0aGUgcGFyZW50IHdpbmRvdyBv
YmplY3QiKTsKKyB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyBmdW5jdGlvbiB3cmFw
cGVkTG9nKHByZWZpeCkgeworICAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAgICAg
ZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAgIH07CisgfQorCisgZGVidWcoImF0dGFj
aGVkIGZyYW1lczogIiArIHdpbmRvdy5mcmFtZXMubGVuZ3RoKTsKKyBsZXQgZnJhbWUgPSB3aW5k
b3cuZnJhbWVzWzBdOworIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMg
KCkgPT4geworICAgICBsZXQgcmVhbG0gPSBmcmFtZS5yZWFsbTsKKyAgICAgZGVidWcoImRldGFj
aGluZyBpZnJhbWUiKTsKKyAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFt
ZSIpWzBdLnJlbW92ZSgpCisgICAgICR2bS5nYygpOworICAgICBmcmFtZSA9IG51bGw7CisgICAg
IGNvbnN0IGNoZWNrRm4yID0gYXdhaXQgcmVhbG0uaW1wb3J0VmFsdWUoIi4vcmVzb3VyY2VzL2V4
YW1wbGUtbW9kdWxlLmpzIiwgImNoZWNrIik7CisgICAgIGRlYnVnKCJkcm9wcGluZyByZWFsbSB2
YWx1ZSIpCisgICAgIHJlYWxtID0gbnVsbDsKKyAgICAgJHZtLmdjKCk7CisgICAgIHNob3VsZEJl
KCgpID0+IGNoZWNrRm4yKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLAorICAgICAgICAgICAg
ICAidHJ1ZSIpOworICAgICBmaW5pc2hKU1Rlc3QoKTsKKyB9KTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFs
dWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MTRjNTU1YTgwOGI3YjJmZmI3ZmM2MTc5ZjcwNzQ3
NDg1NzliMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1p
bXBvcnRWYWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdF
OiA0MgorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0ucHJv
dG90eXBlLmltcG9ydFZhbHVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitzaGFk
b3dSZWFsbTogY2FsbGluZyBuZXN0ZWQgcmVhbG0gd3JhcHBlciB1c2VzIGNvcnJlY3QgZ2xvYmFs
OiBPSworc2hhZG93UmVhbG06IG5lc3RlZCByZWFsbSBldmFsIHVzZXMgY29ycmVjdCBnbG9iYWw6
IE9LCisKK1BBU1MgY2FuIGltcG9ydCBtb2R1bGUgaW4gYSBzaGFkb3cgcmVhbG0KK1BBU1MgY2Fu
IG5lc3QgcmVhbG1zCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlt
cG9ydFZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3YThjNjUzMDI3M2MzMzMzYzVlYTAxODk5YzUyMzY2ZDFkNDM0OWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1
ZS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VT
aGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
YyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hh
ZG93UmVhbG0ucHJvdG90eXBlLmltcG9ydFZhbHVlIik7CisKKyAgICBmdW5jdGlvbiB3cmFwcGVk
TG9nKHByZWZpeCkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1zZykgeworICAgICAgICAg
ICAgZGVidWcocHJlZml4ICsgIjogIiArIG1zZyk7CisgICAgICAgIH07CisgICAgfQorCisgICAg
Y29uc3QgbW9kdWxlX3BhdGggPSAiLi9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMiOworCisg
ICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IG91dGVyU2hhZG93UmVhbG0g
PSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFk
b3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwgImNoZWNrIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKworICAgIGNv
bnN0IG91ck1vZHVsZSA9IGF3YWl0IGltcG9ydChtb2R1bGVfcGF0aCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhvdXJNb2R1bGUudmFsdWUsIHRydWUsICJibG9vcCIpOworICAgIG91ck1vZHVsZS5zZXRW
YWx1ZSg0Mik7CisgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKworICAg
IGNvbnN0IGltcG9ydGVkVmFsID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSht
b2R1bGVfcGF0aCwgInZhbHVlIik7CisgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbCwgdHJ1
ZSk7CisgICAgY29uc3Qgc2V0VmFsdWVJbXBvcnRlZCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0u
aW1wb3J0VmFsdWUobW9kdWxlX3BhdGgsICJzZXRWYWx1ZSIpOworICAgIHNldFZhbHVlSW1wb3J0
ZWQoMTAwKTsKKyAgICBjb25zdCBpbXBvcnRlZFZhbDIgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxt
LmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAidmFsdWUiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGlt
cG9ydGVkVmFsMiwgMTAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgNDIp
OworICAgIH0sICJjYW4gaW1wb3J0IG1vZHVsZSBpbiBhIHNoYWRvdyByZWFsbSIpOworCisgICAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxt
ID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNrRm4gPSBhd2FpdCBvdXRl
clNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAiY2hlY2tfbmVzdGVkIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJzaGFkb3dSZWFsbSIpKSwg
dHJ1ZSk7CisgICAgfSwgImNhbiBuZXN0IHJlYWxtcyIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MmY0NDkxOWIwM2E4MjRmMTY2NDUwZThiZjc3MThjNzM5NDUxMDE0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQ
SXMgYXJlIGF2YWlsYWJsZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRz
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291
cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCitQQVNTIFtXb3JrZXJdIGltcG9ydC12YWx1ZQor
W1dvcmtlcl0gc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBj
b3JyZWN0IGdsb2JhbDogT0sKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBuZXN0ZWQgcmVhbG0gZXZh
bCB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworUEFTUyBbV29ya2VyXSBuZXN0ZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyODExOTg1NjkyZGQ5OTVlNzYyZWE2
MTM4MTk3MmRiZTg2ZmIzNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFk
b3dSZWFsbS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NP
cHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgU2hhZG93IFJlYWxtIEFQSXMgYXJlIGF2YWlsYWJs
ZSBhbmQgd29yayBwcm9wZXJseSBpbnNpZGUgd29ya2VyIGNvbnRleHRzIik7CisgICAgICAgICBj
b25zdCB3b3JrZXIgPSBzdGFydFdvcmtlcigicmVzb3VyY2VzL3NoYWRvdy1yZWFsbS13b3JrZXIu
anMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmMgPS4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmMgPS4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1
bGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTMyZWJjN2E1MDMwZWQ4MDQwMTAzMmIwODM5NTI5MzQ5ZTUyOGJlNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9leGFtcGxlLW1vZHVsZS5qcwpAQCAt
MCwwICsxLDMyIEBACit2YXIgdmFsdWUgPSB0cnVlOworCit2YXIgY2hlY2sgPSBmdW5jdGlvbihs
b2cpIHsKKyAgICBpZiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpICE9PSBPYmpl
Y3QucHJvdG90eXBlKSB7CisgICAgICAgIGxvZygiZ2xvYmFsVGhpcyBwcm90b3R5cGUgaXMgT2Jq
ZWN0LnByb3RvdHlwZSIpOworICAgICAgICBsb2coT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2Jh
bFRoaXMpLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCitmdW5jdGlvbiBsb2dfZXF1YWwobG9nLCBtc2csIHgsIHkpIHsKKyAg
ICBjb25zdCByZXN1bHQgPSB4ID09IHk7CisgICAgbG9nKGAke21zZ306ICR7cmVzdWx0ID8gJ09L
JyA6ICdGQUlMRUQnfWApOworfQorCit2YXIgY2hlY2tfbmVzdGVkID0gZnVuY3Rpb24obG9nKSB7
CisgICAgY29uc3Qgc3IgPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICBnbG9iYWxUaGlzLnggPSAx
MDA7CisgICAgc3IuZXZhbHVhdGUoYGdsb2JhbFRoaXMueCA9IDQyYCk7CisgICAgY29uc3QgZiA9
IHNyLmV2YWx1YXRlKGAoKSA9PiB7cmV0dXJuIGdsb2JhbFRoaXMueDt9YCk7CisgICAgbG9nX2Vx
dWFsKGxvZywgImNhbGxpbmcgbmVzdGVkIHJlYWxtIHdyYXBwZXIgdXNlcyBjb3JyZWN0IGdsb2Jh
bCIsIDQyLCBmKCkpOworICAgIGxvZ19lcXVhbChsb2csICJuZXN0ZWQgcmVhbG0gZXZhbCB1c2Vz
IGNvcnJlY3QgZ2xvYmFsIiwgNDIsIHNyLmV2YWx1YXRlKGBnbG9iYWxUaGlzLnhgKSk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZhciBzZXRWYWx1ZSA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkgewor
ICAgIGNvbnNvbGUubG9nKG5ld1ZhbHVlKTsKKyAgICB2YWx1ZSA9IG5ld1ZhbHVlOworfQorCitl
eHBvcnQgeyB2YWx1ZSwgc2V0VmFsdWUsIGNoZWNrLCBjaGVja19uZXN0ZWQgfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0taWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hhZG93LXJlYWxtLWlmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFiMWUzN2I3ZDU2OGJmMjc5MWQyMTE4NzdlMWRjZmUyNWU2ODlkY2MKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvc2hhZG93LXJlYWxtLWlmcmFtZS5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+PC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgd2luZG93LnJlYWxt
ID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdl
KCdoaScsICIqIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3NoYWRvdy1yZWFsbS13b3JrZXIuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWExM2U1MGUxYWQxYzFjNDNjMjdhMDEwMDNkZjk5ZTRkZjQ3ZTM3NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpz
CkBAIC0wLDAgKzEsNTEgQEAKK2ltcG9ydFNjcmlwdHMoIi4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyIpOworCitmdW5jdGlvbiBhc3NlcnRfZXF1YWxzKHgsIHkpIHsKKyAgICBpZiAoeCA9
PT0geSkgcmV0dXJuOworICAgIHRocm93IG5ldyBFcnJvcihgYXNzZXJ0aW9uIGZhaWx1cmU6IGV4
cGVjdGVkICR7eH0sIGdvdCAke3l9YCk7Cit9CisKK2Z1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4
KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpIHsKKyAgICAgICAgZGVidWcocHJlZml4ICsg
IjogIiArIG1zZyk7CisgICAgfTsKK30KKworCithc3luYyBmdW5jdGlvbiB0ZXN0KGtleSwgZikg
eworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IGYoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIHRlc3RGYWlsZWQoa2V5ICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICB0ZXN0UGFzc2VkKGtleSk7Cit9CisKKyhhc3luYyBmdW5jdGlvbiAoKSB7CisgICAg
YXdhaXQgdGVzdCgiaW1wb3J0LXZhbHVlIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBv
dXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAgICAgIGNvbnN0IGNoZWNr
Rm4gPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxl
LmpzIiwgImNoZWNrIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9n
KCJzaGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisKKyAgICAgICAgY29uc3Qgb3VyTW9kdWxlID0gYXdh
aXQgaW1wb3J0KCIuL2V4YW1wbGUtbW9kdWxlLmpzIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
b3VyTW9kdWxlLnZhbHVlLCB0cnVlLCAiYmxvb3AiKTsKKyAgICAgICAgb3VyTW9kdWxlLnNldFZh
bHVlKDQyKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKwor
ICAgICAgICBjb25zdCBpbXBvcnRlZFZhbCA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0
VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAidmFsdWUiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhpbXBvcnRlZFZhbCwgdHJ1ZSk7CisgICAgICAgIGNvbnN0IHNldFZhbHVlSW1wb3J0ZWQg
PSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpz
IiwgInNldFZhbHVlIik7CisgICAgICAgIHNldFZhbHVlSW1wb3J0ZWQoMTAwKTsKKyAgICAgICAg
Y29uc3QgaW1wb3J0ZWRWYWwyID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgi
Li9leGFtcGxlLW1vZHVsZS5qcyIsICJ2YWx1ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGlt
cG9ydGVkVmFsMiwgMTAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUs
IDQyKTsKKyAgICB9KTsKKworICAgIGF3YWl0IHRlc3QoIm5lc3RlZCIsIGFzeW5jICgpID0+IHsK
KyAgICAgICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAg
ICAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSgi
Li9leGFtcGxlLW1vZHVsZS5qcyIsICJjaGVja19uZXN0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjaGVja0ZuKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLCB0cnVlKTsKKyAgICB9KTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449691</attachid>
            <date>2022-01-21 13:20:07 -0800</date>
            <delta_ts>2022-01-24 08:06:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234155-20220121162006.patch</filename>
            <type>text/plain</type>
            <size>120614</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MWQyYThiYmNkNGUwOGI5YWFhYThhMTQ4YjQyNDM2MGRkNzg1MDdiLi41MjU4NWMxZTA4NjgyMGI1
ZmY5YWM1MzY5Y2NkYWQ3MzY0OGJkNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMg
Zm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgQWRkIGhvb2sgZm9yIGNyZWF0aW5nIHRoZSBuZXcgcmVhbG0gb2Jq
ZWN0IGZvciBzaGFkb3cgcmVhbG1zLCBzaW5jZQorICAgICAgICBpbXBvcnRWYWx1ZSByZXF1aXJl
cyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIG1vZHVsZSBsb2FkaW5nIGxvZ2ljIHRvIHdvcmsKKyAg
ICAgICAgcmlnaHQuCisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QuY3BwOgorICAg
ICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1bnRp
bWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OlNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAqIHJ1
bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaDoKKwogMjAyMi0wMS0yMSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBidWlsZCB3aGVuIHVz
aW5nIFZpc3VhbCBTdHVkaW8gMjAyMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2OTM3ODk5YjU4ZmZmZGVkM2Yw
Mjg4MTkzZTY0NGViYTViMTJiMjkuLmE5ZjlhNDc3ZDE3NzExNWEwZjNjNGExM2YzZTk4MmFmMjlk
MjQwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MSBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdy
aWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNl
IFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9yIHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSW50cm9kdWNlcyBhIG5l
dyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHRoYXQgc2VydmVzIGFzIHRoZQorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiBvZiBhIGdsb2JhbCBvYmplY3QgZm9yIGNvZGUgcnVubmluZyBpbiBhIHNoYWRv
dyByZWFsbS0tdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSByZXF1aXJlbWVudHMgb2YgSlMoRE9N
KUdsb2JhbE9iamVjdCwgaXQgc2ltcGx5IGRlbGVnYXRlcworICAgICAgICBhbGwgbWV0aG9kcyB0
byB0aGUgaW5jdWJhdGluZyAoZW5jbG9zaW5nKSByZWFsbSwgd2l0aCB0aGUgZXhjZXB0aW9uIG9m
CisgICAgICAgIG1ldGhvZHMgcmVsYXRlZCB0byBtb2R1bGUgbG9hZGluZywgZm9yIHdoaWNoIGl0
IHVzZXMgYSBjdXN0b20KKyAgICAgICAgU2NyaXB0TW9kdWxlTG9hZGVyIGNvbmZpZ3VyZWQgdG8g
dXNlIHRoZSBhcHByb3ByaWF0ZSBnbG9iYWwgb2JqZWN0IHdoZW4KKyAgICAgICAgZXZhbHVhdGlu
ZyBtb2R1bGUgY29kZS4KKworICAgICAgICBBbHNvIHJlcXVpcmVzIHNvbWUgYWRqdXN0bWVudCB0
byB0aGUgSURMLWRyaXZlbiBjb2RlIGdlbmVyYXRpb24tLXRoZQorICAgICAgICBjdXJyZW50IGRy
YWZ0IHNwZWMgcmVxdWlyZXMgdGhhdCB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgdGhlIHNoYWRvdyBy
ZWFsbQorICAgICAgICBiZSBhbiBvcmRpbmFyeSBvYmplY3QtLVNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUgaXMgb3B0ZWQgb3V0IG9mIGNvZGVnZW4KKyAgICAgICAgZm9yIHByb2R1Y2luZyBhIGN1c3Rv
bSBwcm90b3R5cGUsIGJ1dCBjYW4gc3RpbGwgaGF2ZSBBUElzIGluY2x1ZGVkIGFzCisgICAgICAg
IHByb3BlcnRpZXMgaWYgdGhleSBhcmUgbWFya2VkIGFzIGBFeHBvc2VkPVNoYWRvd1JlYWxtYCBv
ciBgRXhwb3NlZD0qYAorCisgICAgICAgIFRlc3RzOiBqcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5o
dG1sCisgICAgICAgICAgICAgICBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sCisgICAg
ICAgICAgICAgICBqcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpzY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2Jq
ZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnN1cHBv
cnRzUmljaFNvdXJjZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6
amF2YVNjcmlwdFJ1bnRpbWVGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlOjpzY3JpcHRFeGVjdXRpb25TdGF0dXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6cmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZl
RXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpx
dWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpzdWJzcGFj
ZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjp3
cmFwcGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OmluY3ViYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVs
ZUxvYWRlcjo6c2hhZG93UmVhbG1Mb2FkZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVudERhdGEp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKElzRE9NR2xv
YmFsT2JqZWN0KToKKyAgICAgICAgKFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKToK
KyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlUnVudGltZUVuYWJs
ZUNvbmRpdGlvbmFsU3RyaW5nRm9yRXhwb3NlZCk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlUHJvdG90eXBlRGVjbGFyYXRpb24pOgorICAgICAg
ICAoR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXA6
CisgICAgICAgICogZG9tL1Byb21pc2VSZWplY3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OmlzU2hhZG93UmVhbG1HbG9iYWxTY29wZSBjb25zdCk6CisgICAgICAgICog
cGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcDogQ29waWVkIGZyb20gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjp3cmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6On5TaGFkb3dSZWFsbUdsb2JhbFNjb3BlKToK
KyAgICAgICAgKiBwYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaDogQ29waWVkIGZyb20gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OnNlbGYpOgorICAgICAgICAqIHBhZ2Uv
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmguCisKIDIwMjItMDEtMjEgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdQVCB2ZXJzaW9uIG9mIGNzcy9j
c3MtY2FzY2FkZS9wYXJzaW5nL2xheWVyLWltcG9ydC1wYXJzaW5nLmh0bWwgY3Jhc2hlcyB3aXRo
IG51bGxwdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVj
dC5jcHAKaW5kZXggOTc4ZjI3M2RmOGFmYTc4MDkzOGQ1ZDRmN2QwYTY2ZDY4OGY1YzQxNC4uM2Rj
ZWE2Y2EyNmUyOGJkZTM4ZjRiNjkzOTQ2ZWUyOTIwMzA3YTRkYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAg
ICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRp
YXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmpl
Y3QKIH07CiAKIHZvaWQgSlNBUElHbG9iYWxPYmplY3Q6OnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9u
QXRFdmVudExvb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9uKiBleGNl
cHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFs
T2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5t
bQppbmRleCAzZmI3Nzg0ZWM1N2QxNjRkNWM2Nzc3MDE5ZWZjMzJmZDhlZjJiNWY1Li42NTM4ZDMz
NmM4ODk0MWUxMzc3ZGVjMGRhOGU0ZmJkNzE5N2Q2NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KQEAgLTcxLDYgKzcxLDcgQEAgY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNBUElHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVs
bHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8vIGluc3RhbnRpYXRlU3Ry
ZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAogfTsKIAogdm9pZCBK
U0FQSUdsb2JhbE9iamVjdDo6cmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKaW5kZXggOGY4YzVmMzY5ZDZlYTUyMDg4MTc4YjdjYzg1YjcyNDc1MTQ3NGNhZi4u
ZGYxODBmYmFkMWM3OTFlYzczY2Y2YjljYTNmNGI0NDI4YzQ2YmE4NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKQEAgLTc1OCw2ICs3NTgsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBH
bG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwg
Ly8gZGVmYXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAg
IG51bGxwdHIsIC8vIGluc3RhbnRpbmF0ZVN0cmVhbWluZworICAgICZkZXJpdmVTaGFkb3dSZWFs
bUdsb2JhbE9iamVjdAogfTsKIAogR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyODY0YTE5NWY1NDJlMDk0MzZhZmY3ODMxMWM0OTZi
NTM1MDIxMzdhLi42ZWQ4ZDIwYjBkM2Q3OGJjZGQxN2U0MGVhYjA3MTk4YmFhMGI4MGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBA
IC01MzcsNiArNTM3LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxP
YmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgbnVsbHB0ciwgLy8gZGVm
YXVsdExhbmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxw
dHIsIC8vIGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFs
T2JqZWN0CiB9OwogCiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAwM2VhM2E2
YzMxNjllNTdlZGY3NzAxMWNiMDhiMjYxOGEwNTBmOTk0Li5lMmIwZWI4MjI0MjY5MWUwMDBjMjRi
YTQwNmQzMDY3MTc0YjMzYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI2NCw2ICsyNjQsOSBAQCBzdHJ1Y3QgR2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgewogCiAgICAgdHlwZWRlZiBKU1Byb21pc2UqICgqSW5zdGFudGlhdGVTdHJl
YW1pbmdQdHIpKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSwgSlNPYmplY3QqKTsKICAgICBJbnN0
YW50aWF0ZVN0cmVhbWluZ1B0ciBpbnN0YW50aWF0ZVN0cmVhbWluZzsKKworICAgIHR5cGVkZWYg
SlNHbG9iYWxPYmplY3QqICgqRGVyaXZlU2hhZG93UmVhbG1HbG9iYWxGdW5jdGlvblB0cikoSlNH
bG9iYWxPYmplY3QqKTsKKyAgICBEZXJpdmVTaGFkb3dSZWFsbUdsb2JhbEZ1bmN0aW9uUHRyIGRl
cml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0OwogfTsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3Qg
OiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CkBAIC0xMDc0LDYgKzEwNzcsMTIg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25z
dCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHN0YXRpYyBKU0dsb2Jh
bE9iamVjdCogZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21NZXRob2RU
YWJsZSh2bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpLCBn
bG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIH0KKwogICAgIHN0
YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsg
cmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZv
cmVUaW1lb3V0KGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICBz
dGF0aWMgUnVudGltZUZsYWdzIGphdmFTY3JpcHRSdW50aW1lRmxhZ3MoY29uc3QgSlNHbG9iYWxP
YmplY3QqKSB7IHJldHVybiBSdW50aW1lRmxhZ3MoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcAppbmRleCAx
NmU4YWFjM2RhZjMxY2FiZjZiMTg5ZWFkMWIzMzE2YzRhYzE1N2Y3Li5jODg2YmFjMDYzYjQyYzY3
MmYyZmVjOTUxODFmMTAxN2I2NmFmMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbUNvbnN0cnVjdG9yLmNwcApAQCAtNTMsNyArNTMs
NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aFNoYWRvd1JlYWxtQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZwogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBTdHJ1Y3R1cmUqIHNoYWRvd1JlYWxtU3RydWN0dXJlID0gU2hhZG93UmVh
bG1PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
PnNoYWRvd1JlYWxtUHJvdG90eXBlKCkpOwotICAgIEpTT2JqZWN0KiBzaGFkb3dSZWFsbU9iamVj
dCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNoYWRvd1JlYWxtU3RydWN0dXJlLCBn
bG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgIEpTT2JqZWN0KiBz
aGFkb3dSZWFsbU9iamVjdCA9IFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUodm0sIHNoYWRvd1Jl
YWxtU3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
c2hhZG93UmVhbG1PYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5jcHAKaW5kZXggYTI1YTQwMDgwOTMwMDgxZjAwOGU2
M2UxMTY5ZGNmNzdlNzQzOGZjOC4uNTI3ZTA5MTMxZDM3ODRjYjE2ZDY4YmE3NjI4MjQ1ODYzOTk3
MzM4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVh
bG1PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1Jl
YWxtT2JqZWN0LmNwcApAQCAtNTcsMTIgKzU3LDExIEBAIHZvaWQgU2hhZG93UmVhbG1PYmplY3Q6
OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKIAogREVG
SU5FX1ZJU0lUX0NISUxEUkVOKFNoYWRvd1JlYWxtT2JqZWN0KTsKIAotU2hhZG93UmVhbG1PYmpl
Y3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKQorU2hhZG93UmVh
bG1PYmplY3QqIFNoYWRvd1JlYWxtT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBTaGFkb3dSZWFs
bU9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U2hhZG93UmVhbG1P
YmplY3Q+KHZtKSkgU2hhZG93UmVhbG1PYmplY3Qodm0sIHN0cnVjdHVyZSk7CiAgICAgb2JqZWN0
LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUodm0sIEpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgbWV0aG9kVGFibGUpOwotICAg
IG9iamVjdC0+bV9nbG9iYWxPYmplY3Quc2V0KHZtLCBvYmplY3QsIGdsb2JhbE9iamVjdCk7Cisg
ICAgb2JqZWN0LT5tX2dsb2JhbE9iamVjdC5zZXQodm0sIG9iamVjdCwgZ2xvYmFsT2JqZWN0LT5n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdChn
bG9iYWxPYmplY3QpKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbU9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuaAppbmRleCBkMDg4ZmY3ODQy
ZTIwYWU1NDI1MmY2ZGIwNWQ0YzdlODRmOWViMTVjLi5hZGIyZWQwMjJhMzcwYzQwMzkyNDkzN2I1
YWE3YjUzYjk4ZjI3ZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TaGFkb3dSZWFsbU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NoYWRvd1JlYWxtT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgREVD
TEFSRV9JTkZPOwogCi0gICAgc3RhdGljIFNoYWRvd1JlYWxtT2JqZWN0KiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSopOworICAgIHN0YXRpYyBT
aGFkb3dSZWFsbU9iamVjdCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNHbG9iYWxPYmplY3Qq
KTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBtX2dsb2Jh
bE9iamVjdC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk3OGEzODY4YThmNDc1
MjdmMjFiMjAwM2ZhODliNjg2ZWRhYTU4ODUuLmE3M2YwOGRhMjdmMmZmNjQ3NTE4ZDM5ZTg0ZDUw
MTk1ZGJiNzc0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA4LDYgKzEyMDgsNyBAQCBz
ZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmlkbAogICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Njcm9sbFRvT3B0
aW9ucy5pZGwKKyAgICBwYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCiAgICAgcGFnZS9T
aGFyZURhdGEuaWRsCiAgICAgcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0aW9ucy5pZGwKICAg
ICBwYWdlL1VuZG9JdGVtLmlkbApAQCAtMjA4OCw2ICsyMDg5LDcgQEAgc2V0KElTT19TVUJTUEFD
RVNfSEVBREVSX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RPTUlzb1N1YnNw
YWNlcy5oKQogc2V0KENPTlNUUlVDVE9SU19IRUFERVJfRklMRSAke1dlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vRE9NQ29uc3RydWN0b3JzLmgpCiBzZXQoV0lORE9XX0NPTlNUUlVDVE9SU19G
SUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9ET01XaW5kb3dDb25zdHJ1Y3RvcnMu
aWRsKQogc2V0KFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitz
ZXQoU0hBRE9XUkVBTE1HTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwp
CiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJD
b3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbCkKIHNldChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1NoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKQEAgLTIyNzIsMTIgKzIyNzQsMTMgQEAgR0VORVJBVEVf
QklORElOR1MoV2ViQ29yZUJpbmRpbmdzCiAgICAgR0VORVJBVE9SIEpTCiAgICAgU1VQUExFTUVO
VEFMX0RFUEZJTEUgJHtTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgIFBQX0VYVFJB
X09VVFBVVAotICAgICAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09OU1RSVUNU
T1JTX0hFQURFUl9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRX0KKyAgICAke0lTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEV9ICR7Q09O
U1RSVUNUT1JTX0hFQURFUl9GSUxFfSAke1dJTkRPV19DT05TVFJVQ1RPUlNfRklMRX0gJHtXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0gJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFfSAke0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfQogICAgIFBQX0VYVFJBX0FSR1MKICAgICAgICAgLS1pc29TdWJzcGFjZXNIZWFk
ZXJGaWxlICR7SVNPX1NVQlNQQUNFU19IRUFERVJfRklMRX0KICAgICAgICAgLS1jb25zdHJ1Y3Rv
cnNIZWFkZXJGaWxlICR7Q09OU1RSVUNUT1JTX0hFQURFUl9GSUxFfQogICAgICAgICAtLXdpbmRv
d0NvbnN0cnVjdG9yc0ZpbGUgJHtXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0t
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgJHtTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAg
ICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0RFRElD
QVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tc2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7U0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCBhOTNmYjExY2UwNWM3OTNjZjNmODBkNjY5MmJmZWJlYWQ2YzlhYjM1Li4yYWExNjZm
ZDg2MTEzMWYzNTJhMDJkMTc0NTEzYzgzMDdmZGM1OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE0MjcsNiArMTQyNyw3IEBAICQo
UFJPSkVDVF9ESVIpL3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAogJChQUk9KRUNUX0RJ
UikvcGFnZS9TY3JvbGxPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TY3JvbGxUb09w
dGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9wYWdlL1NldHRpbmdzLnlhbWwKKyQoUFJPSkVDVF9E
SVIpL3BhZ2UvU2hhZG93UmVhbG1HbG9iYWxTY29wZS5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2Uv
U2hhcmVEYXRhLmlkbAogJChQUk9KRUNUX0RJUikvcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXplT3B0
aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL3BhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDg1NzhhOTBhYmM2
YWNkNjlmM2JmMzNiMzc5MDY1YTZiYzU5NDJlNTIuLjU4MTg0YTM0ZmMwZDFlNGIyODFhMmY3YTZh
NTc3NGViNDZjZmY0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNDc1LDYgKzI0NzUsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2Vydmlj
ZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFkb3dSb290LmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFkb3dSb290LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93Um9vdEluaXQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiODAwN2QxMjAxYWYyY2E2ZjMy
ZDUzYWVkMDE4OWVhZjUzMmEyNzk0Li41YWE4ZWQ1MmQ4ZjZjMGM4NjZjMTgwNmUxZTc3MGE4ZDc2
YjczZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNTcsNiArMTI1Nyw3
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2lj
YWxQb3NpdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAorICAgICQoV2ViQ29y
ZSkvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdl
L1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TdHJ1Y3R1cmVkU2VyaWFsaXpl
T3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRvSXRlbS5pZGwgXApAQCAtMjA3
OCw2ICsyMDc5LDcgQEAgSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSA9IERPTUlzb1N1YnNwYWNl
cy5oCiBDT05TVFJVQ1RPUlNfSEVBREVSX0ZJTEUgPSBET01Db25zdHJ1Y3RvcnMuaAogV0lORE9X
X0NPTlNUUlVDVE9SU19GSUxFID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbAogV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwKK1NIQURPV1JFQUxNR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5pZGwKIFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNIQVJFRFdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCkBAIC0yMDkzLDYgKzIwOTUsNyBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0g
XAogICAgICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSBcCiAgICAgJChXSU5ET1dfQ09OU1RS
VUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSBcCisgICAgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAg
ICAgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAg
ICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChX
T1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKQEAgLTIxMDMsNyArMjEwNiw3
IEBAIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1F
RElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9D
RVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURM
UykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCSQoc2hlbGwg
ZWNobyAkKEpTX0JJTkRJTkdfSURMUykgfCB0ciAiICIgIlxuIiA+IElETEZpbGVOYW1lc0xpc3Qu
dHh0KQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRs
cy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0Vf
SkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRs
QXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNI
ZWFkZXJGaWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFk
ZXJGaWxlICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0Zp
bGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RSkgLS1zaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFSRURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAt
LXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQor
CSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAt
LWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVND
UklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0IElETEZpbGVOYW1lc0xpc3QudHh0IC0taWRsQXR0cmli
dXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lG
aWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJG
aWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS1jb25zdHJ1Y3RvcnNIZWFkZXJGaWxl
ICQoQ09OU1RSVUNUT1JTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChX
SU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhZG93UmVhbG1H
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTSEFET1dSRUFMTUdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlICQoU0hBUkVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1hdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQTEVN
RU5UQUxfTUFLRUZJTEVfREVQUykKIAogIwogIyBFbWl0IHRoZSBydWxlcyB0byBnZW5lcmF0ZSBi
aW5kaW5ncyBmcm9tIElETCBmaWxlcy4gTm90ZSB0aGF0IHRoZXJlIGFyZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggY2Q1OGNkYjMyYzk0ODEwNzFhNDQ2NTk0ODY5YjQwY2E2MTA2OWJhNC4uN2QwZGEw
YjdhNWQ4ODM1YzI0N2RjMWFhODIwZjJiZTBmZjJlZGZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC00NTgsNiArNDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCiAgICAgYmluZGluZ3MvanMvSlNOb2RlTGlz
dEN1c3RvbS5oCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKKyAg
ICBiaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgKICAgICBiaW5kaW5n
cy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uaAogICAgIGJpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBw
ZWRPYmplY3QuaAogICAgIGJpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuaApAQCAtMTE0NCw2ICsx
MTQ1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2Uv
U2VjdXJpdHlPcmlnaW5IYXNoLmgKICAgICBwYWdlL1NlY3VyaXR5UG9saWN5LmgKICAgICBwYWdl
L1NldHRpbmdzQmFzZS5oCisgICAgcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKICAgICBw
YWdlL1NoYXJlRGF0YS5oCiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCiAgICAgcGFnZS9TcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggM2ZhMGJiZDk4MjRmOWE4
NmExMmZlMzg3OWFiZGUwZDNlNDg1OWFmNS4uZDZkMDQ0NGFhYjlkMjJmY2VhNjNkOTgwMDAxNTMz
M2Q3Mzc3ZjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYyMSw2ICs2MjEsNyBAQCBiaW5kaW5ncy9q
cy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dlYlhSVmlld0N1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHAKK2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2UuY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2UuY3BwCkBAIC0xNzkyLDYgKzE3OTMsNyBAQCBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5UG9saWN5
LmNwcAogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCitwYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
Y3BwCiBwYWdlL1NoYXJlRGF0YVJlYWRlci5jcHAKIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiBw
YWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApAQCAtMzg2NSw2ICszODY3LDcgQEAgSlNTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuY3BwCiBKU1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCiBK
U1NlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5jcHAKIEpTU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudC5jcHAKK0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAKIEpTU2hhZG93Um9vdC5jcHAK
IEpTU2hhZG93Um9vdEluaXQuY3BwCiBKU1NoYWRvd1Jvb3RNb2RlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5OTlhMmVh
MTk2ZTg1NzkwMjBiMDEzYjRmNTA3ZTc1NmM5NWFiYzMuLmZjNzMxMmRiMGEyNDlmN2U4NDg2NzZk
NjE5YzVkNWY0NWQwODgwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDQsNiArMTM0NCw4IEBACiAJCTQ2N0E2OERBMjc1
RUE5OUMwMDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjdBNjhEMjI3NUVBOThBMDA5QjMxQzUgLyog
U2hhcmVkV29ya2VyTWFuYWdlci5oICovOyB9OwogCQk0NjgyRDIwMDFGNzk3ODMwMDBDODYzREIg
LyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMwMEM4NjNEQiAvKiBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0REUxRURERkE1
RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4M0RGNDAyNzY3REY5ODAwN0QwMEM4IC8qIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xv
YmFsU2NvcGVCYXNlLmggKi87IH07CisJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAvKiBTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjgzREYzQjI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxT
Y29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODhFRTNBMjZERDI2MEMwMDJB
RjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFDMDA2RTAzMTQgLyogQnJvYWRjYXN0
Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlENzdCODI3MDE2MjUx
MDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5RDc3QjYyNzAxNjI1MDAwMTQyRkE2IC8qIE5hdmln
YXRpb25SZXF1ZXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtOTIzMyw2ICs5MjM1LDExIEBACiAJCTQ2ODM0NERDMUVEREZBNUYwMEI3Nzk1
QiAvKiBET01SZWN0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUmVjdExpc3QuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NUmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY4M0RGMzkyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODNERjNCMjc2N0RGMjYwMDdEMDBDOCAvKiBTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0MyNzY3REYyNjAwN0QwMEM4
IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjgzREYzRDI3NjdERjk4MDA3
RDAwQzggLyogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4M0RGM0UyNzY3REY5ODAwN0QwMEM4IC8q
IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NPcmlnaW5Nb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVkaW9Db250ZXh0
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAyMDIwMDZFMDMx
NCAvKiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJyb2FkY2FzdENo
YW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQyMjUsNiArMjQyMzIs
OSBAQAogCQkJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55YW1sICovLAog
CQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICovLAogCQkJ
CTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJCQk0Njgz
REYzOTI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAgKi8sCisJ
CQkJNDY4M0RGM0IyNzY3REYyNjAwN0QwMEM4IC8qIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCAq
LywKKwkJCQk0NjgzREYzQzI3NjdERjI2MDA3RDAwQzggLyogU2hhZG93UmVhbG1HbG9iYWxTY29w
ZS5pZGwgKi8sCiAJCQkJMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5oICov
LAogCQkJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovLAogCQkJ
CTFBMkM2NjcxMjQyQUZFRjcwMDMwNTVFQyAvKiBTaGFyZURhdGFSZWFkZXIuY3BwICovLApAQCAt
MjkyNTksNiArMjkyNjksOCBAQAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQk0NkJDQkJDMTIwODUwMDgwMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLywKIAkJCQk0NkJDQkJDMDIwODUwMDdGMDA3
MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8sCisJCQkJNDY4M0RGM0QyNzY3REY5
ODAwN0QwMEM4IC8qIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwICovLAorCQkJCTQ2
ODNERjNFMjc2N0RGOTgwMDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgg
Ki8sCiAJCQkJOTMxQUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8qIEpTVmFsdWVJbldyYXBwZWRPYmpl
Y3QuaCAqLywKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5kb3dQcm94eS5j
cHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93UHJveHkuaCAq
LywKQEAgLTM1NjIyLDYgKzM1NjM0LDcgQEAKIAkJCQk1MTgyQzI1QzFGMzE0M0NEMDA1OUJBN0Mg
LyogSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYx
NzUwMzFGMzU4QjNCMDBDNzQ5NTAgLyogSlNTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2RUIzN0NFMUY5N0NDRDIwMEI2NTUyMyAvKiBKU1NlcnZpY2VX
b3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODNERjQwMjc2N0RGOTgw
MDdEMDBDOCAvKiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NkRGRjQ5QzFEQzI2MjBCMDBCODBCNDggLyogSlNTaGFkb3dSb290TW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNl
QnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM3MTIyLDYgKzM3MTM1LDcgQEAKIAkJCQkwRjNE
RDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQ2ODNERjQxMjc2N0U5MUEwMDdEMDBDOCAvKiBTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyog
U2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDU2QTdBQzgyNTZDNEY0ODAwMkY5RERD
IC8qIFNoYWRvd1Jvb3RJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkRGRjQ5ODFEQzI2MDMx
MDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IGEyMGRjNTYy
YmEyNjJjMzg0ZDlmMWRkNzk5ZjJkYzM3Y2Y3YWIxYTEuLmRjZWMwMmZkYjcyY2FiYzVmYWU1Nzlj
OWZhZGM0N2E1OWYzOTc5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ0LDEyICs0NCwxNiBAQAogI2luY2x1ZGUgIkpTUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5oIgogI2lu
Y2x1ZGUgIkpTUmVtb3RlRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmgiCisjaW5jbHVkZSAiSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oIgogI2lu
Y2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgIkpTV3JpdGFibGVTdHJlYW0uaCIKICNpbmNsdWRlICJSZWplY3Rl
ZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiU3Ry
dWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC0yNjUsNiArMjY5LDggQEAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdAogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KHRoaXMp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKGluaGVyaXRzPEpTUmVtb3RlRE9N
V2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChpbmhl
cml0czxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKKyAgICAgICAgcmV0dXJu
IGpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4odGhpcyktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoaW5o
ZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSgpKSkKQEAgLTUwNSw2ICs1MTEsOCBA
QCBzdGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRNb2R1bGVMb2FkZXIoSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1v
ZHVsZUxvYWRlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CisgICAgaWYgKGds
b2JhbE9iamVjdC0+aW5oZXJpdHM8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZT4odm0pKQor
ICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNl
Kj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwogICAgIGlmIChnbG9i
YWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0pKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1dvcmtlckds
b2JhbFNjb3BlQmFzZT4odm0pKQpAQCAtNTY5LDYgKzU3Nyw1NCBAQCBKU0M6OkpTT2JqZWN0KiBK
U0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKUwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgpKTsKIH0KIAor
SlNDOjpKU0dsb2JhbE9iamVjdCogSlNET01HbG9iYWxPYmplY3Q6OmRlcml2ZVNoYWRvd1JlYWxt
R2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBh
dXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIGF1dG8gZG9tR2xvYmFsT2JqZWN0
ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIGNv
bnRleHQgPSBkb21HbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBp
ZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIC8vIFNhbWUtb3JpZ2luIGlmcmFt
ZXMgcHJlc2VudCBhIGRpZmZpY3VsdCBjaXJjdW1zdGFuY2UgYmVjYXVzZSB0aGUKKyAgICAgICAg
Ly8gc2hhZG93IHJlYWxtIGdsb2JhbCBvYmplY3QgY2Fubm90IHJldGFpbiB0aGUgaW5jdWJhdGlu
ZyByZWFsbSdzCisgICAgICAgIC8vIGdsb2JhbCBvYmplY3QgKHRoYXQgd291bGQgYmUgYSByZWZj
b3VudCBsb29wKTsgYnV0LCBzYW1lLW9yaWdpbgorICAgICAgICAvLyBpZnJhbWVzIGNhbiBjcmVh
dGUgb2JqZWN0cyB0aGF0IG91dGxpdmUgdGhlaXIgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgLy8K
KyAgICAgICAgLy8gT3VyIHNvbHV0aW9uIGlzIHRvIHdhbGsgdXAgdGhlIHBhcmVudCB0cmVlIG9m
IGRvY3VtZW50cyBhcyBmYXIgYXMKKyAgICAgICAgLy8gcG9zc2libGUgd2hpbGUgc3RpbGwgc3Rh
eWluZyBpbiB0aGUgc2FtZSBvcmlnaW4gdG8gaW5zdXJlIHdlIGRvbid0CisgICAgICAgIC8vIGFs
bG93IHRoZSBTaGFkb3dSZWFsbSB0byBmZXRjaCBtb2R1bGVzIG1hc3F1ZXJhZGluZyBhcyB0aGUg
d3JvbmcKKyAgICAgICAgLy8gb3JpZ2luIHdoaWxlIGF2b2lkaW5nIGFueSBsaWZldGltZSBpc3N1
ZXMgKHNpbmNlIHRoZSB0b3Btb3N0IGRvY3VtZW50CisgICAgICAgIC8vIHdpdGggYSBnaXZlbiB3
cmFwcGVyIHdvcmxkIHNob3VsZCBvdXRsaXZlIG90aGVyIG9iamVjdHMgaW4gdGhhdAorICAgICAg
ICAvLyB3b3JsZCkKKyAgICAgICAgYXV0byBkb2N1bWVudCA9ICZkb3duY2FzdDxEb2N1bWVudD4o
KmNvbnRleHQpOworICAgICAgICBhdXRvIGNvbnN0JiBvcmlnaW5hbE9yaWdpbiA9IGRvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpOworICAgICAgICBhdXRvJiBvcmlnaW5hbFdvcmxkID0gZG9tR2xv
YmFsT2JqZWN0LT53b3JsZCgpOworCisgICAgICAgIHdoaWxlICghZG9jdW1lbnQtPmlzVG9wRG9j
dW1lbnQoKSkgeworICAgICAgICAgICAgYXV0byBjYW5kaWRhdGVEb2N1bWVudCA9IGRvY3VtZW50
LT5wYXJlbnREb2N1bWVudCgpOworCisgICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZURvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkRvbWFpbihvcmlnaW5hbE9yaWdpbikpCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRvY3VtZW50ID0gY2FuZGlkYXRl
RG9jdW1lbnQ7CisgICAgICAgICAgICBkb21HbG9iYWxPYmplY3QgPSBjYW5kaWRhdGVEb2N1bWVu
dC0+ZnJhbWUoKS0+c2NyaXB0KCkuZ2xvYmFsT2JqZWN0KG9yaWdpbmFsV29ybGQpOworICAgICAg
ICB9CisgICAgfQorCisgICAgQVNTRVJUKGRvbUdsb2JhbE9iamVjdCk7CisgICAgYXV0byBzY29w
ZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZShkb21HbG9iYWxPYmplY3QsIHNjcmlw
dE1vZHVsZUxvYWRlcihkb21HbG9iYWxPYmplY3QpKTsKKworICAgIGF1dG8gc3RydWN0dXJlID0g
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIEpT
Qzo6anNOdWxsKCkpOworICAgIGF1dG8gcHJveHlTdHJ1Y3R1cmUgPSBKU1Byb3h5OjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIG51bGxwdHIsIEpTQzo6anNOdWxsKCkpOworICAgIGF1dG8gcHJveHkgPSBK
U1Byb3h5OjpjcmVhdGUodm0sIHByb3h5U3RydWN0dXJlKTsKKyAgICBhdXRvIHdyYXBwZXIgPSBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKHNj
b3BlKSwgcHJveHkpOworCisgICAgd3JhcHBlci0+c2V0UHJvdG90eXBlRGlyZWN0KHZtLCB3cmFw
cGVyLT5vYmplY3RQcm90b3R5cGUoKSk7CisgICAgcHJveHktPnNldFRhcmdldCh2bSwgd3JhcHBl
cik7CisKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKworCiBKU0RPTUdsb2JhbE9iamVjdCogdG9K
U0RPTUdsb2JhbE9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01XcmFw
cGVyV29ybGQmIHdvcmxkKQogewogICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBmNGQ4
NjVkOWEwMzI3YjhhZDk0ZjdiMGRmOTNjZmMwZDU3Y2U4YjU4Li4wYTU4ZTdlOWQ2NzFiZWRmNzY2
ZmYyYjgzNjc1MDQxMjRjYjFkMWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIEpTQnVp
bHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVy
biBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQogCiAgICAgc3RhdGljIHZvaWQgcmVwb3J0
VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcChKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhjZXB0
aW9uKik7CisgICAgc3RhdGljIEpTQzo6SlNHbG9iYWxPYmplY3QqIGRlcml2ZVNoYWRvd1JlYWxt
R2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAogICAgIHZvaWQgY2xlYXJET01H
dWFyZGVkT2JqZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBlMWQ3ODE3MGRhYjIxMTQ0ZGEyN2FkMjY0Y2ZhMWE1
YWYzMmQxMzk4Li40ZDkyNzE3OTFhZWJhMjc2NWJiZjQyMzUzZWJmNTg3NGFlMGM0NDU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTk1
LDYgKzk1LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNl
OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgIG51bGxwdHIsCiAgICAgbnVsbHB0
ciwKICNlbmRpZgorICAgICZkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdAogfTsKIAogSlNE
T01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJveHkqIHByb3h5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5j
cHAKaW5kZXggYWIzZmFjNjcxMzA0ZjhjN2JjYTU5MDMwMzJlZDZjNjBiZGMxZmE0Yi4uYTRkNzE1
ZjcwOGM2MGMwMjg2NTc5Y2YxNTkwMzU3NzAwYjdkNTRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCkBAIC01Myw2ICs1
Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTUmVtb3RlRE9NV2luZG93QmFz
ZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9CiAgICAgbnVsbHB0ciwgLy8gZGVmYXVsdExh
bmd1YWdlCiAgICAgbnVsbHB0ciwgLy8gY29tcGlsZVN0cmVhbWluZwogICAgIG51bGxwdHIsIC8v
IGluc3RhbnRpYXRlU3RyZWFtaW5nCisgICAgbnVsbHB0ciwgLy8gZGVyaXZlU2hhZG93UmVhbG1H
bG9iYWxPYmplY3QKIH07CiAKIEpTUmVtb3RlRE9NV2luZG93QmFzZTo6SlNSZW1vdGVET01XaW5k
b3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxSZW1vdGVET01XaW5k
b3c+JiYgd2luZG93LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODNmOTRlMzEwOGY4ZTQ1OGQ2ZDI0N2EzOWYwMmI5NTVhM2E2MWExMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUJhc2UuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmgiCisKKyNpbmNsdWRlICJFdmVudExv
b3AuaCIKKyNpbmNsdWRlICJKU01pY3JvdGFza0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisj
aW5jbHVkZSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHkuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitjb25zdCBDbGFz
c0luZm8gSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6c19pbmZvID0geyAiU2hhZG93UmVh
bG1HbG9iYWxTY29wZSIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpIH07
CisKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CisgICAgJnN1cHBvcnRzUmljaFNv
dXJjZUluZm8sCisgICAgJnNob3VsZEludGVycnVwdFNjcmlwdCwKKyAgICAmamF2YVNjcmlwdFJ1
bnRpbWVGbGFncywKKyAgICAmcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcCwKKyAgICAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwK
KyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVs
ZUxvYWRlckV2YWx1YXRlLAorICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKKyAgICAmcmVw
b3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKKyAgICAmY3VycmVudFNjcmlwdEV4ZWN1
dGlvbk93bmVyLAorICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCisgICAgJnJlcG9ydFZpb2xh
dGlvbkZvclVuc2FmZUV2YWwsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0s
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICZjb21waWxlU3RyZWFtaW5nLAorICAgICZp
bnN0YW50aWF0ZVN0cmVhbWluZywKKyNlbHNlCisgICAgbnVsbHB0ciwKKyAgICBudWxscHRyLAor
I2VuZGlmCisgICAgJmRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0LAorfTsKKworSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZShKU0M6
OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFNoYWRvd1JlYWxtR2xv
YmFsU2NvcGU+JiYgaW1wbCkKKyAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUs
IG5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCisgICAgLCBtX3dy
YXBwZWQoV1RGTW92ZShpbXBsKSkKK3sKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkqIHByb3h5KQoreworICAgIG1f
cHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CisgICAgbV93cmFwcGVkLT5tX3dyYXBwZXIgPSBK
U0M6OldlYWsodGhpcyk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIG1fcHJveHkuZ2V0
KCkpOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFZpc2l0b3I+Cit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnZpc2l0
Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTU2hhZG93UmVh
bG1HbG9iYWxTY29wZUJhc2UqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0
LCB2aXNpdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3h5KTsKK30K
KworREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UpOwor
CitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5jdWJhdGluZ1Jl
YWxtKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKworY29uc3QgSlNET01HbG9iYWxP
YmplY3QqIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OmluY3ViYXRpbmdSZWFsbSgpIGNv
bnN0Cit7CisgICAgYXV0byBpbmN1YmF0aW5nV3JhcHBlciA9IG1fd3JhcHBlZC0+bV9pbmN1YmF0
aW5nV3JhcHBlci5nZXQoKTsKKyAgICBBU1NFUlQoaW5jdWJhdGluZ1dyYXBwZXIpOworICAgIHJl
dHVybiBpbmN1YmF0aW5nV3JhcHBlcjsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBzdGF0aWNfY2FzdDxKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4oY2VsbCktPkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJh
c2U6On5KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKCk7Cit9CisKK2Jvb2wgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2Jh
bE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gaW5jdWJhdGluZyA9IGpzQ2FzdDxjb25zdCBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJhdGluZ1JlYWxtKCk7
CisgICAgcmV0dXJuIGluY3ViYXRpbmctPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnN1cHBv
cnRzUmljaFNvdXJjZUluZm8oaW5jdWJhdGluZyk7Cit9CisKK2Jvb2wgSlNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlQmFzZTo6c2hvdWxkSW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTR2xvYmFsT2JqZWN0
KiBvYmplY3QpCit7CisgICAgYXV0byBpbmN1YmF0aW5nID0ganNDYXN0PGNvbnN0IEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZUJhc2UqPihvYmplY3QpLT5pbmN1YmF0aW5nUmVhbG0oKTsKKyAgICBy
ZXR1cm4gaW5jdWJhdGluZy0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50ZXJy
dXB0U2NyaXB0KGluY3ViYXRpbmcpOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29w
ZUJhc2U6OnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNHbG9iYWxP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBhdXRvIGluY3ViYXRpbmcgPSBqc0Nhc3Q8Y29uc3QgSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KG9iamVjdCktPmluY3ViYXRpbmdSZWFsbSgpOwor
ICAgIHJldHVybiBpbmN1YmF0aW5nLT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zaG91bGRJ
bnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGluY3ViYXRpbmcpOworfQorCitSdW50aW1lRmxh
Z3MgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6amF2YVNjcmlwdFJ1bnRpbWVGbGFncyhj
b25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQoreworICAgIGF1dG8gaW5jdWJhdGluZyA9IGpz
Q2FzdDxjb25zdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKj4ob2JqZWN0KS0+aW5jdWJh
dGluZ1JlYWxtKCk7CisgICAgcmV0dXJuIGluY3ViYXRpbmctPmdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPmphdmFTY3JpcHRSdW50aW1lRmxhZ3MoaW5jdWJhdGluZyk7Cit9CisKK0pTQzo6U2Ny
aXB0RXhlY3V0aW9uU3RhdHVzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OnNjcmlwdEV4
ZWN1dGlvblN0YXR1cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNP
YmplY3QqIG93bmVyKQoreworICAgIGF1dG8gaW5jdWJhdGluZyA9IGpzQ2FzdDxKU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+aW5jdWJhdGluZ1JlYWxtKCk7Cisg
ICAgcmV0dXJuIGluY3ViYXRpbmctPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnNjcmlwdEV4
ZWN1dGlvblN0YXR1cyhpbmN1YmF0aW5nLCBvd25lcik7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZTo6cmVwb3J0VmlvbGF0aW9uRm9yVW5zYWZlRXZhbChKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNTdHJpbmcqIG1zZykKK3sKKyAgICBhdXRv
IGluY3ViYXRpbmcgPSBqc0Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KGdsb2Jh
bE9iamVjdCktPmluY3ViYXRpbmdSZWFsbSgpOworICAgIGluY3ViYXRpbmctPmdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKCktPnJlcG9ydFZpb2xhdGlvbkZvclVuc2FmZUV2YWwoaW5jdWJhdGluZywg
bXNnKTsKK30KKwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlOjpxdWV1ZU1pY3Jv
dGFza1RvRXZlbnRMb29wKEpTR2xvYmFsT2JqZWN0JiBvYmplY3QsIFJlZjxKU0M6Ok1pY3JvdGFz
az4mJiB0YXNrKQoreworICAgIGF1dG8gaW5jdWJhdGluZyA9IGpzQ2FzdDxKU1NoYWRvd1JlYWxt
R2xvYmFsU2NvcGVCYXNlKj4oJm9iamVjdCktPmluY3ViYXRpbmdSZWFsbSgpOworICAgIGluY3Vi
YXRpbmctPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnF1ZXVlTWljcm90YXNrVG9FdmVudExv
b3AoKmluY3ViYXRpbmcsIFdURk1vdmUodGFzaykpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiwgU2hhZG93
UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9iYWxTY29wZSkKK3sKKyAgICByZXR1cm4gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCByZWFsbUdsb2JhbFNjb3BlKTsKK30KKworSlNWYWx1ZSB0b0pT
KEpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYgcmVhbG1HbG9iYWxTY29w
ZSkKK3sKKyAgICBBU1NFUlQocmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCkpOworICAgIHJldHVy
biAmcmVhbG1HbG9iYWxTY29wZS53cmFwcGVyKCktPnByb3h5KCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDA4Zjg1YTI1ZDQyMTA5
MzE2OTgxYzUxZjEwYzIxMWJmNDViMWIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZS5oCkBAIC0wLDAgKzEs
ODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUg
IkpTRE9NV3JhcHBlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGU7CisKK2NsYXNzIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UgOiBw
dWJsaWMgSlNET01HbG9iYWxPYmplY3QgeworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0RP
TUdsb2JhbE9iamVjdDsKKworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsK
KworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUmIHdyYXBw
ZWQoKSBjb25zdCB7IHJldHVybiAqbV93cmFwcGVkOyB9CisKKyAgICBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCogaW5jdWJhdGluZ1JlYWxtKCkgY29uc3Q7CisgICAgSlNET01HbG9iYWxPYmplY3Qq
IGluY3ViYXRpbmdSZWFsbSgpOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBK
U0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CisK
KyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNj
cmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBKU0M6OlJ1bnRpbWVGbGFncyBqYXZhU2NyaXB0UnVudGltZUZsYWdzKGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgSlNDOjpTY3JpcHRFeGVjdXRpb25TdGF0dXMgc2Ny
aXB0RXhlY3V0aW9uU3RhdHVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcChKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgUmVmPEpTQzo6TWljcm90YXNrPiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXBvcnRW
aW9sYXRpb25Gb3JVbnNhZmVFdmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTU3RyaW5n
Kik7CisKK3Byb3RlY3RlZDoKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlKEpTQzo6
Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZlB0cjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTsKKworICAg
IERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFNoYWRvd1Jl
YWxtR2xvYmFsU2NvcGU+IG1fd3JhcHBlZDsKK307CisKK2lubGluZSBKU0RPTUdsb2JhbE9iamVj
dCogSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6aW5jdWJhdGluZ1JlYWxtKCkKK3sKKyAg
ICByZXR1cm4gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnN0X2Nhc3Q8Y29uc3Qg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSo+KHRoaXMpLT5pbmN1YmF0aW5nUmVhbG0oKSk7
Cit9CisKKy8vIEFsd2F5cyBpZ25vcmVzIHRoZSBleGVjU3RhdGUgYW5kIHBhc3NlZCBnbG9iYWxP
YmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgaXMgaXRzZWxmIGEgZ2xvYmFsT2JqZWN0IGFu
ZCB3aWxsIGFsd2F5cyB1c2UgaXRzIG93biBwcm90b3R5cGUgY2hhaW4uCitKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlJik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZSogc2NvcGUpIHsgcmV0dXJuIHNjb3BlID8gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICpzY29wZSkgOiBKU0M6OmpzTnVsbCgp
OyB9CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgU2hhZG93UmVhbG1H
bG9iYWxTY29wZSYpOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHNjb3BlKSB7
IHJldHVybiBzY29wZSA/IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgKnNjb3BlKSA6IEpTQzo6
anNOdWxsKCk7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IGI5
ZmE0OTE4ZDJkNWE5MGI3MGIyNDI3ZDQxNDhjNTVmZjc4MjdkYmQuLjc3MzAxYTUxNTk5NTkyZGU4
N2IwNzY2NWI2NzE2ZWFlNTBjMGZmY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAgICBudWxscHRyLAogICAgIG51bGxwdHIsCiAjZW5k
aWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCwKIH07CiAKIEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiYmIGltcGwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2Nv
cGVCYXNlLmNwcAppbmRleCAyOTE0MTkzNDJiMDkyMzY5Yzk3ODJlZTMyZjQ5Y2MzODgxODgzNTU4
Li5hNzk4ZTQyNmFiZjIyZTc4NWRiZTNhYmE3ZTUwOGIzY2FiMjUxYjYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTY2LDYgKzY2LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICBudWxscHRy
LAogICAgIG51bGxwdHIsCiAjZW5kaWYKKyAgICBkZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVj
dCwKIH07CiAKIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6SlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8V29ya2xl
dEdsb2JhbFNjb3BlPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDkzY2UwOTAyYzU3YjA1NTQ4NGJiNTQzNDQx
NzM4OTMyZDQ2YmEzLi4yZmQ5NjVjZjg1Zjk4NjlkNWNlNDE2ZmFhOTUwMzM1MGY5MTNiZDE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29k
ZS5oIgorI2luY2x1ZGUgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTdWJy
ZXNvdXJjZUludGVncml0eS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNp
bmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKQEAgLTc0LDYgKzc1LDEzIEBAIFNj
cmlwdE1vZHVsZUxvYWRlcjo6flNjcmlwdE1vZHVsZUxvYWRlcigpCiAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKIH0KIAorVW5pcXVlUmVmPFNjcmlwdE1vZHVsZUxvYWRlcj4gU2NyaXB0
TW9kdWxlTG9hZGVyOjpzaGFkb3dSZWFsbUxvYWRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiByZWFs
bUdsb2JhbCkgY29uc3QKK3sKKyAgICBhdXRvIGxvYWRlciA9IG1ha2VVbmlxdWVSZWY8U2NyaXB0
TW9kdWxlTG9hZGVyPihtX2NvbnRleHQsIG1fb3duZXJUeXBlKTsKKyAgICBsb2FkZXItPm1fc2hh
ZG93UmVhbG1HbG9iYWwgPSByZWFsbUdsb2JhbDsKKyAgICByZXR1cm4gbG9hZGVyOworfQorCiBz
dGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQog
ewogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9k
dWxlS2V5LmlzVW5kZWZpbmVkKCk7CkBAIC0yNDQsNyArMjUyLDkgQEAgSlNDOjpKU1ZhbHVlIFNj
cmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
YmplY3QsIEoKICAgICBpZiAoIXNvdXJjZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBK
U0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgIk1vZHVsZSBrZXkgaXMg
YW4gaW52YWxpZCBVUkwuIl9zKTsKIAotICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6
OkRvY3VtZW50KSB7CisgICAgaWYgKG1fc2hhZG93UmVhbG1HbG9iYWwpCisgICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShtX3NoYWRvd1JlYWxt
R2xvYmFsLCBhd2FpdGVkVmFsdWUsIHJlc3VtZU1vZGUpKTsKKyAgICBlbHNlIGlmIChtX293bmVy
VHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3Vy
Y2VVUkwsICptb2R1bGVSZWNvcmQsIGF3YWl0ZWRWYWx1ZSwgcmVzdW1lTW9kZSkpOwogICAgIH0g
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oCmluZGV4IGU4MmE4YmI0MzM3MWVhNmNhYjhmY2ZhODQyNGQ4N2ViM2M5ODYzMTguLmJhMGMy
NjIyYzM0YWMwNzRkNjZiOTg1MDVkZjc5NDczNzA1NWY3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC01NSw2ICs1NSw4IEBAIHB1
YmxpYzoKICAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCisgICAgVW5p
cXVlUmVmPFNjcmlwdE1vZHVsZUxvYWRlcj4gc2hhZG93UmVhbG1Mb2FkZXIoSlNDOjpKU0dsb2Jh
bE9iamVjdCogcmVhbG1HbG9iYWwpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVy
IHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6
OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKICAgICBI
YXNoU2V0PFJlZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAgICAgT3duZXJUeXBl
IG1fb3duZXJUeXBlOworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIG1fc2hhZG93UmVhbG1HbG9i
YWwgeyBudWxscHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDZk
NDZiMTU0MzU2MTY1MjQ1MDE3OWIwNzQ3Y2RiODc0YjJlZGVkNzEuLjQ5YjAyYmYwZTc2MDMwYjA2
ZmQ1OWE3NmZlNTYwNTQ3MWEyZjZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTUmVtb3RlRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKQEAgLTY4LDYgKzY5LDcgQEAgSlNWTUNsaWVudERhdGE6OkpTVk1D
bGllbnREYXRhKFZNJiB2bSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5k
b3coSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNSZW1vdGVET01XaW5kb3c+KCkpCiAgICAg
LCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5
cGU6OkFyZ3M8SlNXb3JrZXJHbG9iYWxTY29wZT4oKSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9y
SlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlPigpKQorICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5
cGU6OkFyZ3M8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4MDM2
NmEwYzdmNzIyMDIzZjc5MzgxNGFmNmVhNTcxMWRhOTg0Nzc3Li4zN2M5YTFlNjY0ZGY4NWZiYmRl
NjMzMTY5MTE0OGM3YzYyNjY4N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAg
IEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNSZW1vdGVET01XaW5kb3c7
CiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtlckdsb2Jh
bFNjb3BlOwogICAgIEpTQzo6SXNvSGVhcENlbGxUeXBlIG1faGVhcENlbGxUeXBlRm9ySlNTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZTsKKyAgICBKU0M6Oklzb0hlYXBDZWxsVHlwZSBtX2hlYXBDZWxs
VHlwZUZvckpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgSlNDOjpJc29IZWFwQ2VsbFR5cGUgbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1MzUyNGE0MjhmNjhhYzNmODFkOTQw
MjMxMjY3Yjk5ODc5MjE0NDgzLi43OTIwYzliNDYyMzBjZDZjNjVkYTQ1NGYwZjUyZDlmYjM3ZTc3
OThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtNzY2LDcgKzc2Niw3IEBAIHN1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQog
c3ViIElzRE9NR2xvYmFsT2JqZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAg
IHJldHVybiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWUgZXEgIlJlbW90ZURPTVdpbmRvdyIgfHwgJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRjb2Rl
R2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2xldEdsb2JhbFNj
b3BlIikgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiVGVzdEdsb2JhbE9iamVjdCI7Cisg
ICAgcmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVy
ZmFjZS0+dHlwZS0+bmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFs
U2NvcGUiKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlIiB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJUZXN0R2xvYmFsT2JqZWN0IjsKIH0K
IAogc3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQpAQCAtNzgxLDYgKzc4MSwyMCBA
QCBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCiAgICAgcmV0dXJuIElzRE9NR2xv
YmFsT2JqZWN0KCRpbnRlcmZhY2UpOwogfQogCitzdWIgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQ
cm90b3R5cGUKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QoKSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVx
ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIjsKK30KKworc3ViIFNob3VsZENyZWF0ZVdpdGhKU1By
b3h5Cit7CisgICAgbXkgKCRjb2RlR2VuZXJhdG9yLCAkaW50ZXJmYWNlKSA9IEBfOworCisgICAg
cmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUi
IHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2Vy
R2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVy
ZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpOworfQorCiBzdWIgR2VuZXJhdGVJbmRleGVkR2V0
dGVyCiB7CiAgICAgbXkgKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW5k
ZXhFeHByZXNzaW9uKSA9IEBfOwpAQCAtMjg3Nyw3ICsyODkxLDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHB0ci0+ZmluaXNoQ3Jl
YXRpb24odm0sIHByb3h5KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
fVxuXG4iKTsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2Uo
JGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0g
ZWxzaWYgKFNob3VsZENyZWF0ZVdpdGhKU1Byb3h5KCRjb2RlR2VuZXJhdG9yLCAkaW50ZXJmYWNl
KSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkY2xhc3NOYW1l
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjwkaW1w
bFR5cGU+JiYgaW1wbCwgSlNDOjpKU1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgICAgICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxs
PCRjbGFzc05hbWU+KHZtKSkgJHtjbGFzc05hbWV9KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1w
bCkpO1xuIik7CkBAIC0yOTE5LDcgKzI5MzMsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAk
c3RydWN0dXJlRmxhZ3N7IkpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNDOjpJbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlIn0gPSAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5k
b3ciOwogICAgICAgICAKICAgICAjIFByb3RvdHlwZQotICAgIHVubGVzcyAoU2hvdWxkVXNlR2xv
YmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNl
T2JqZWN0KSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUoJGlu
dGVyZmFjZSkgfHwgU2hvdWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkp
IHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHBy
b3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwogICAgIH0KQEAgLTMx
ODMsNyArMzE5Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ29uc3RydWN0b3IKICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZU5hbWUgZXEg
IlJlbW90ZURPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAk
Y2xhc3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1wbFR5cGU+JiYsIEpT
V2luZG93UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0
c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIp
KSB7CisgICAgfSBlbHNpZiAoU2hvdWxkQ3JlYXRlV2l0aEpTUHJveHkoJGNvZGVHZW5lcmF0b3Is
ICRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNz
TmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwog
ICAgIH0gZWxzaWYgKCFOZWVkc0ltcGxlbWVudGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QmKTtcblxuIik7CkBAIC0zMTkzLDcgKzMyMDcsNyBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKIAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8
fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTV2luZG93
UHJveHkqKTtcbiIpOwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVy
ZmFjZSgkaW50ZXJmYWNlLCAiV29ya2VyR2xvYmFsU2NvcGUiKSB8fCAkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpKSB7Cisg
ICAgfSBlbHNpZiAoU2hvdWxkQ3JlYXRlV2l0aEpTUHJveHkoJGNvZGVHZW5lcmF0b3IsICRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJiwgSlNDOjpKU1Byb3h5Kik7XG4iKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYpO1xuIik7CkBAIC0zOTY0LDYgKzM5NzgsOCBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxl
Q29uZGl0aW9uYWxTdHJpbmdGb3JFeHBvc2VkCiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSIpOwogICAgIH0gZWxzaWYgKCRleHBv
c2VkIGVxICJXb3JrZXIiKSB7CiAgICAgICAgIHB1c2goQCRjb25qdW5jdHMsICJqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKSIpOworICAgIH0gZWxzaWYgKCRleHBv
c2VkIGVxICJTaGFkb3dSZWFsbSIpIHsKKyAgICAgICAgcHVzaChAJGNvbmp1bmN0cywgImpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKCkiKTsKICAgICB9IGVs
c2lmICgkZXhwb3NlZCBlcSAiV29ya2xldCIpIHsKICAgICAgICAgcHVzaChAJGNvbmp1bmN0cywg
ImpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrbGV0R2xvYmFsU2NvcGUoKSIpOwogICAgIH0g
ZWxzaWYgKCRleHBvc2VkIGVxICJBdWRpb1dvcmtsZXQiKSB7CkBAIC00NTAzLDcgKzQ1MTksNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAkaGFzaFNpemUrKzsKICAgICB9
CiAKLSAgICBpZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgaWYgKCFT
aG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBt
eSAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSA9ICFJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNl
KTsKIAogICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhhc2hUYWJsZSgkY2xhc3NOYW1lLCAkaGFz
aE5hbWUsICRoYXNoU2l6ZSwgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVl
MSwgXEBoYXNoVmFsdWUyLCBcJWNvbmRpdGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMs
ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5KTsKQEAgLTQ1MTYsNyArNDUzMiw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KIAotICAgIGlmIChQcm90b3R5cGVIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlKCRpbnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50
ZXJmYWNlKSAmJiAhJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICBpZiAoUHJv
dG90eXBlSGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRl
cmZhY2UoJGludGVyZmFjZSkgJiYgIVNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRp
bnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgJHtjbGFzc05hbWV9OjppbmZvKCksICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAqdGhpcyk7XG4iKTsKIAogICAgICAgICBteSBAcnVudGltZUVuYWJsZWRQ
cm9wZXJ0aWVzID0gQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9uczsKQEAgLTQ1OTcsNyArNDYxMyw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBhc3NlcnQoIkpTQ19UT19TVFJJ
TkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpIHJlcXVpcmVzIHN0cmluZ3MgdHdvIG9yIG1vcmUg
Y2hhcmFjdGVycyBsb25nIikgaWYgbGVuZ3RoKCR2aXNpYmxlSW50ZXJmYWNlTmFtZSkgPCAyOwog
Ci0gICAgaWYgKCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkgeworICAgIGlmICghU2hv
dWxkVXNlT3JkaW5hcnlPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9O
KCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KQEAg
LTQ2MjksNyArNDY0NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBX
VEZNb3ZlKGltcGwpLCBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9i
YWxTY29wZSIpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2xldEdsb2JhbFNjb3BlIikpIHsKKyAgICAgIH0gZWxzaWYgKFNob3VsZENyZWF0ZVdp
dGhKU1Byb3h5KCRjb2RlR2VuZXJhdG9yLCAkaW50ZXJmYWNlKSkgewogICAgICAgICBBZGRJbmNs
dWRlc0ZvckltcGxlbWVudGF0aW9uVHlwZUluSW1wbCgkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwg
V1RGTW92ZShpbXBsKSlcbiIpOwpAQCAtNDY1MCw3ICs0NjY2LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1dpbmRvd1Byb3h5KiBwcm94eSlcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKLSAgICB9IGVs
c2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtl
ckdsb2JhbFNjb3BlIikgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRl
cmZhY2UsICJXb3JrbGV0R2xvYmFsU2NvcGUiKSkgeworICAgIH0gZWxzaWYgKFNob3VsZENyZWF0
ZVdpdGhKU1Byb3h5KCRjb2RlR2VuZXJhdG9yLCAkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTUHJveHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
LCBwcm94eSk7XG5cbiIpOwpAQCAtNDc1MCw3ICs0NzY2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2bS5oZWFwLnJlcG9ydEV4dHJh
TWVtb3J5QWxsb2NhdGVkKHdyYXBwZWQoKS5tZW1vcnlDb3N0KCkpO1xuIikgaWYgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UmVwb3J0RXh0cmFNZW1vcnlDb3N0fTsKICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKLSAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2JhbE9i
amVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVj
dCkgeworICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZh
Y2UpIHx8IFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6Y3JlYXRl
UHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdClcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBpZiAoJGludGVyZmFj
ZS0+cGFyZW50VHlwZSkgewpAQCAtNzU0MSw3ICs3NTU3LDcgQEAgc3ViIEdlbmVyYXRlUHJvdG90
eXBlRGVjbGFyYXRpb24KIHsKICAgICBteSAoJG91dHB1dEFycmF5LCAkY2xhc3NOYW1lLCAkaW50
ZXJmYWNlKSA9IEBfOwogCi0gICAgcmV0dXJuIGlmICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2Jq
ZWN0OworICAgIHJldHVybiBpZiBTaG91bGRVc2VPcmRpbmFyeU9iamVjdFByb3RvdHlwZSgkaW50
ZXJmYWNlKTsKIAogICAgIG15ICRwcm90b3R5cGVDbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9UHJv
dG90eXBlIjsKIApAQCAtNzgxOCw3ICs3ODM0LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JI
ZWxwZXJNZXRob2RzCiAgICAgaWYgKCEkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbiBh
bmQgJGludGVyZmFjZS0+cGFyZW50VHlwZSkgewogICAgICAgICBteSAkcGFyZW50Q2xhc3NOYW1l
ID0gIkpTIiAuICRpbnRlcmZhY2UtPnBhcmVudFR5cGUtPm5hbWU7CiAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICByZXR1cm4gJHtwYXJlbnRDbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3Rv
cih2bSwgJmdsb2JhbE9iamVjdCk7XG4iKTsKLSAgICB9IGVsc2lmICgkaW50ZXJmYWNlLT5pc05h
bWVzcGFjZU9iamVjdCkgeworICAgIH0gZWxzaWYgKFNob3VsZFVzZU9yZGluYXJ5T2JqZWN0UHJv
dG90eXBlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8SmF2YVNj
cmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmg+Iik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBVTlVTRURfUEFSQU0odm0pO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICByZXR1cm4gZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpO1xuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5w
bCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCmlu
ZGV4IDViODkzMTNmZTVjYWVmYjg5MTJmYjQzNmYxNDc2ODJmMDQ3NTc3YmEuLjc0MWE1OGIxOWYx
MjhkZTRmMDliMWNiNTY2Y2Y1MWE5MWVkN2Y4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCkBAIC00NCw2ICs0NCw3IEBAIG15
ICRpc29TdWJzcGFjZXNIZWFkZXJGaWxlOwogbXkgJGNvbnN0cnVjdG9yc0hlYWRlckZpbGU7CiBt
eSAkd2luZG93Q29uc3RydWN0b3JzRmlsZTsKIG15ICR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CitteSAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBt
eSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc2hhcmVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwpAQCAtNjUsNyArNjYsOCBAQCBteSBAc3VwcG9ydGVk
R2xvYmFsQ29udGV4dHMgPSAoCiAgICAgIkRlZGljYXRlZFdvcmtlciIsCiAgICAgIlNlcnZpY2VX
b3JrZXIiLAogICAgICJQYWludFdvcmtsZXQiLAotICAgICJBdWRpb1dvcmtsZXQiCisgICAgIkF1
ZGlvV29ya2xldCIsCisgICAgIlNoYWRvd1JlYWxtIiwKICk7CiAKICMgVG9nZ2xlIHRoaXMgdG8g
dmFsaWRhdGUgdGhhdCB0aGUgZmFzdCByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgInBhcnNpbmci
IHVzZWQKQEAgLTgyLDYgKzg0LDcgQEAgR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRlZmlu
ZXMsCiAgICAgICAgICAgICdjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlPXMnID0+IFwkY29uc3RydWN0
b3JzSGVhZGVyRmlsZSwKICAgICAgICAgICAgJ3dpbmRvd0NvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnd29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
LAorICAgICAgICAgICAnc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycg
PT4gXCRzaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAg
J2RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnc2hhcmVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2hhcmVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlLApAQCAtOTgsNiArMTAxLDcgQEAgZGllKCdNdXN0IHNwZWNpZnkgI2Rl
ZmluZSBtYWNyb3MgdXNpbmcgLS1kZWZpbmVzLicpIHVubGVzcyBkZWZpbmVkKCRkZWZpbmVzKTsK
IGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc3VwcGxlbWVudGFsRGVw
ZW5kZW5jeUZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxl
KTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td2luZG93Q29uc3Ry
dWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd2luZG93Q29uc3RydWN0b3JzRmlsZSk7CiBk
aWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0t
c2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVj
aWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNp
bmcgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBk
ZWZpbmVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgn
TXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzaGFyZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwpAQCAtMTEzLDYgKzExNyw3IEBAICRpc29TdWJzcGFjZXNI
ZWFkZXJGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRpc29TdWJzcGFjZXNIZWFkZXJGaWxlKTsK
ICRjb25zdHJ1Y3RvcnNIZWFkZXJGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRjb25zdHJ1Y3Rv
cnNIZWFkZXJGaWxlKTsKICR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVl
ZGVkKCR3aW5kb3dDb25zdHJ1Y3RvcnNGaWxlKTsKICR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7Ciskc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3
aW5QYXRoSWZOZWVkZWQoJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsK
ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAk
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5l
ZWRlZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkd29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CkBAIC0xNTQsNiArMTU5LDcgQEAgbXkgJWRp
Y3Rpb25hcnlEZXBlbmRlbmNpZXM7CiBteSAlc3VwcGxlbWVudGFsczsKIG15ICR3aW5kb3dDb25z
dHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2Rl
ID0gIiI7CitteSAkc2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsK
IG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15
ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2hh
cmVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CkBAIC0yNzIsNiArMjc4
LDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNo
KSB7CiAgICAgICAgICAgICAgICAgJHdpbmRvd0NvbnN0cnVjdG9yc0NvZGUgLj0gJHdpbmRvd0Fs
aWFzZXMgaWYgJHdpbmRvd0FsaWFzZXM7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29u
dGV4dCBlcSAiV29ya2VyIikgewogICAgICAgICAgICAgICAgICR3b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVsc2lmICgk
Z2xvYmFsQ29udGV4dCBlcSAiU2hhZG93UmVhbG0iKSB7CisgICAgICAgICAgICAgICAgJHNoYWRv
d1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAg
ICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkRlZGljYXRlZFdvcmtlciIpIHsK
ICAgICAgICAgICAgICAgICAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRl
eHQgZXEgIlNlcnZpY2VXb3JrZXIiKSB7CkBAIC0zMDMsNiArMzExLDcgQEAgZm9yZWFjaCBteSAk
aWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNoKSB7CiAjIEdlbmVyYXRlIHBh
cnRpYWwgaW50ZXJmYWNlcyBmb3IgQ29uc3RydWN0b3JzLgogR2VuZXJhdGVQYXJ0aWFsSW50ZXJm
YWNlKCJET01XaW5kb3ciLCAkd2luZG93Q29uc3RydWN0b3JzQ29kZSwgJHdpbmRvd0NvbnN0cnVj
dG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJXb3JrZXJHbG9iYWxTY29wZSIs
ICR3b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR3b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOworR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTaGFkb3dSZWFsbUds
b2JhbFNjb3BlIiwgJHNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50
ZXJmYWNlKCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIsICRkZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUiLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFs
SW50ZXJmYWNlKCJTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSIsICRzaGFyZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUsICRzaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOGVlMzdkNDFkZGJjZmQ3M2EyM2MyYTY5ZGMzM2VhOGNmYmRjZGQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVh
bG1HbG9iYWxTY29wZS5jcHAKQEAgLTAsMCArMSwyMDIgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlz
IHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBo
YXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkh
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZS5oIgorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NSXNv
U3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5o
IgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUds
b2JhbE9iamVjdElubGluZXMuaCIKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2lu
Y2x1ZGUgIkpTRXhwb3NlZFN0YXIuaCIKKyNpbmNsdWRlICJKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU2hh
ZG93UmVhbG1HbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwQW5hbHl6ZXIuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNEZXN0
cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9P
YmplY3RQcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvck1h
Y3Jvcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5o
PgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBu
YW1lc3BhY2UgSlNDOworCisvLyBBdHRyaWJ1dGVzCisKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2Vk
U3RhckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzU2hh
ZG93UmVhbG1HbG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOwor
Cit1c2luZyBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZT47CisKKy8q
IEhhc2ggdGFibGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlSW5kZXhbNV0gPSB7CisgICAgeyAtMSwgLTEgfSwK
KyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAwLCA0IH0sCisgICAgeyAx
LCAtMSB9LAorfTsKKworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlVGFibGVWYWx1ZXNbXSA9Cit7CisgICAgeyAiRXhwb3NlZFN0YXIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3RhckNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAorICAgIHsgIlNoYWRvd1JlYWxtR2xvYmFsU2NvcGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzU2hhZG93UmVhbG1H
bG9iYWxTY29wZV9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCit9Owor
CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlID0g
eyAyLCAzLCB0cnVlLCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmluZm8oKSwgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlVGFibGVWYWx1ZXMsIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxl
SW5kZXggfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1No
YWRvd1JlYWxtR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsKKwordGVtcGxhdGU8PiBKU1Zh
bHVlIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgVU5VU0VEX1BBUkFNKHZtKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0Lm9i
amVjdFByb3RvdHlwZSgpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQgSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIEpTU3RyaW5n
KiBuYW1lU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSJfcyk7CisgICAgbV9vcmlnaW5hbE5hbWUuc2V0KHZtLCB0aGlzLCBuYW1lU3RyaW5nKTsK
KyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIG5hbWVTdHJpbmcsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
LCBnbG9iYWxPYmplY3QuZ2V0UHJvdG90eXBlRGlyZWN0KHZtKSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpOworfQorCitjb25zdCBDbGFzc0luZm8gSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpzX2luZm8gPSB7ICJTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
IiwgJkJhc2U6OnNfaW5mbywgJkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZVRhYmxlLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSkgfTsKKworSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYgaW1wbCkK
KyAgICA6IEpTRE9NV3JhcHBlcjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPih2bSwgc3RydWN0dXJl
LCBXVEZNb3ZlKGltcGwpKQoreworfQorCit2b2lkIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb3h5KiBwcm94eSkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSwgcHJveHkpOworCisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNl
X29mPEFjdGl2ZURPTU9iamVjdCwgU2hhZG93UmVhbG1HbG9iYWxTY29wZT46OnZhbHVlLCAiSW50
ZXJmYWNlIGlzIG5vdCBtYXJrZWQgYXMgW0FjdGl2ZURPTU9iamVjdF0gZXZlbiB0aG91Z2ggaW1w
bGVtZW50YXRpb24gY2xhc3Mgc3ViY2xhc3NlcyBBY3RpdmVET01PYmplY3QuIik7CisKK30KKwor
SlNWYWx1ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwg
Y29uc3QgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9N
Q29uc3RydWN0b3I8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3IsIERPTUNv
bnN0cnVjdG9ySUQ6OlNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+KHZtLCAqanNDYXN0PGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQoreworICAgIEpTU2hhZG93
UmVhbG1HbG9iYWxTY29wZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZSo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPkpTU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6fkpTU2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworfQorCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQoreworICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVQ
cm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGlmIChVTkxJ
S0VMWSghcHJvdG90eXBlKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKK30KKworc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzU2hhZG93UmVhbG1HbG9iYWxTY29wZV9FeHBvc2VkU3RhckNvbnN0
cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1NoYWRv
d1JlYWxtR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOworICAgIHJldHVybiBKU0V4cG9zZWRTdGFyOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOworfQorCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRT
dGFyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCit7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU+OjpnZXQ8anNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlX0V4cG9zZWRTdGFyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOworfQorCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQoreworICAgIFVOVVNFRF9Q
QVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
JnRoaXNPYmplY3QpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlX1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZT46OmdldDxqc1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVfU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBhdHRyaWJ1dGVOYW1lKTsKK30KKworSlNDOjpJc29TdWJzcGFjZSogSlNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCit7Cisg
ICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNs
aWVudERhdGEpOworICAgIGF1dG8mIHNwYWNlcyA9IGNsaWVudERhdGEuc3Vic3BhY2VzKCk7Cisg
ICAgaWYgKGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmdldCgpKQorICAgICAgICByZXR1cm4gc3BhY2U7CisgICAgc3BhY2VzLm1fc3Vic3Bh
Y2VGb3JTaGFkb3dSZWFsbUdsb2JhbFNjb3BlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNP
X1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZSwgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKTsKKyAgICBhdXRv
KiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yU2hhZG93UmVhbG1HbG9iYWxTY29wZS5nZXQo
KTsKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCitJR05PUkVfV0FS
TklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKKyAgICB2b2lkICgqbXlWaXNpdE91
dHB1dENvbnN0cmFpbnQpKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpID0gSlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzOworICAgIHZvaWQgKCpq
c0NlbGxWaXNpdE91dHB1dENvbnN0cmFpbnQpKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRv
ciYpID0gSlNDOjpKU0NlbGw6OnZpc2l0T3V0cHV0Q29uc3RyYWludHM7CisgICAgaWYgKG15Vmlz
aXRPdXRwdXRDb25zdHJhaW50ICE9IGpzQ2VsbFZpc2l0T3V0cHV0Q29uc3RyYWludCkKKyAgICAg
ICAgY2xpZW50RGF0YS5vdXRwdXRDb25zdHJhaW50U3BhY2VzKCkuYXBwZW5kKHNwYWNlKTsKK0lH
Tk9SRV9XQVJOSU5HU19FTkQKK0lHTk9SRV9XQVJOSU5HU19FTkQKKyAgICByZXR1cm4gc3BhY2U7
Cit9CisKK3ZvaWQgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjphbmFseXplSGVhcChKU0NlbGwq
IGNlbGwsIEhlYXBBbmFseXplciYgYW5hbHl6ZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqPihjZWxsKTsKKyAgICBhbmFseXplci5z
ZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAg
ICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBhbmFs
eXplci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CisgICAgQmFzZTo6YW5hbHl6ZUhlYXAo
Y2VsbCwgYW5hbHl6ZXIpOworfQorCitib29sIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIEFic3RyYWN0U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiBy
ZWFzb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CisgICAgVU5VU0VEX1BBUkFNKHZp
c2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCit7CisgICAgYXV0byoganNT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlID0gc3RhdGljX2Nhc3Q8SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOworICAgIGF1dG8mIHdvcmxkID0gKnN0YXRp
Y19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOworICAgIHVuY2FjaGVXcmFwcGVyKHdv
cmxkLCAmanNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLT53cmFwcGVkKCksIGpzU2hhZG93UmVhbG1H
bG9iYWxTY29wZSk7Cit9CisKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCit7
CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZSo+KHZtLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNmZTIzZjMwODA0MDEzMjAzZTMxYTFiNDFiZWE2ZDU5NWE4
NzBkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDg5IEBACisvKgor
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4K
KyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBs
LiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01XcmFw
cGVyLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKKworY2xhc3MgSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIDogcHVibGljIEpTRE9NV3JhcHBlcjxTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlPiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPjsKKyAgICBzdGF0aWMgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiBjcmVh
dGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlPiYmIGltcGwsIEpTQzo6SlNQcm94eSogcHJveHkpCisgICAgeworICAgICAg
ICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxv
Y2F0ZUNlbGw8SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPih2bSkpIEpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKTsKKyAgICAgICAgcHRyLT5maW5p
c2hDcmVhdGlvbih2bSwgcHJveHkpOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0KKworICAg
IHN0YXRpYyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6
SlNWYWx1ZSk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOworCisgICAg
REVDTEFSRV9JTkZPOworCisgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okds
b2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpLCBKU0M6Ok5vbkFycmF5KTsK
KyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0m
LCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpT
Qzo6U3Vic3BhY2VBY2Nlc3MgbW9kZT4gc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNl
Rm9yKEpTQzo6Vk0mIHZtKQorICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChtb2RlID09IEpT
Qzo6U3Vic3BhY2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gc3Vic3BhY2VGb3JJbXBsKHZtKTsKKyAgICB9CisgICAgc3Rh
dGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSk7CisgICAg
c3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Citwcm90ZWN0
ZWQ6CisgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVy
ZSosIFJlZjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTsKK307CisKK2NsYXNzIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZU93bmVyIGZpbmFsIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKK3B1
YmxpYzoKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvciYsIGNv
bnN0IGNoYXIqKikgZmluYWw7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0KSBmaW5hbDsKK307CisKK2lubGluZSBKU0M6OldlYWtIYW5k
bGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUqKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVPd25lcj4gb3duZXI7CisgICAgcmV0dXJuICZvd25lci5nZXQoKTsKK30KKworaW5saW5l
IHZvaWQqIHdyYXBwZXJLZXkoU2hhZG93UmVhbG1HbG9iYWxTY29wZSogd3JhcHBhYmxlT2JqZWN0
KQoreworICAgIHJldHVybiB3cmFwcGFibGVPYmplY3Q7Cit9CisKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsK
KyAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGU7CisgICAg
dXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUqOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTgxMmYwNDg2NDY2
Y2Q4ZTRkOTcxNjJiNGNkZDNmNjMyZDJkZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5jcHAKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5l
cmF0ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcg
dG8gcmVnZW5lcmF0ZSBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQg
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4K
KyovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2U4MTJmMDQ4NjQ2NmNkOGU0ZDk3MTYyYjRjZGQzZjYzMmQyZGU4
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApAQCAtMCwwICsxLDUg
QEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0
cyB0aGF0IEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpT
U2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVkIGZvciBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1
aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTU2hhZG93UmVhbG1H
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41Njc2ZGQ3ZjFmZTdhOWFjZDk2OWU2MGNhMGU4ZDljZmViZTE0Zjk4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaWRsCkBAIC0wLDAgKzEsMiBAQAorW0V4cG9zZWQ9U2hh
ZG93UmVhbG1dIGludGVyZmFjZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlIHsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU2hhZG93UmVhbG1HbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmNlNDg3MTMxNmQ2YTA3MzQyNzZkM2I0ZTk0OThmNzA0ZjZjNWExZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDQgQEAKK3BhcnRpYWwgaW50ZXJmYWNl
IFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgeworICAgIGF0dHJpYnV0ZSBFeHBvc2VkU3RhckNvbnN0
cnVjdG9yIEV4cG9zZWRTdGFyOworICAgIGF0dHJpYnV0ZSBTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Q29uc3RydWN0b3IgU2hhZG93UmVhbG1HbG9iYWxTY29wZTsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVz
LmRlcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxE
ZXBlbmRlbmNpZXMuZGVwCmluZGV4IGMxMjMyMTUyNDYxYTZjMmVkMmU1NDgwYTJlN2M2ZGI2ODg0
YmE0NjMuLmUzMWUwZjU4MjNjZWNkYzUwY2NiYmM0ZjdmMjYxNjcyYWMwZTcxM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBl
bmRlbmNpZXMuZGVwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9T
dXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCkBAIC0yMSw2ICsyMSwxMCBAQCBKU1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oOiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsCiBET01TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDogU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmlkbAogV2ViRE9NU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6IFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGw6CitKU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaDogU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0RPTVNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUuaDogU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK1dlYkRPTVNo
YWRvd1JlYWxtR2xvYmFsU2NvcGUuaDogU2hhZG93UmVhbG1HbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwKK1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgogSlNTaGFyZWRX
b3JrZXJHbG9iYWxTY29wZS5oOiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwKIERPTVNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6IFNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbAogV2ViRE9NU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDogU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzZjU5NDA4OGFlMTg5OGZiOTRlOWU4ZjVjN2I4
NDVkMzU1NzVkODk5Li4wY2I2YzhkYzQ1MGVjYTJlZDEwMzIxZWE0YzdlZTFiMjdkODZkYTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTk0LDYg
Kzk0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtlckdsb2JhbFNjb3BlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dSZWFsbUds
b2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNX
b3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVh
bCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTMxMiw2
ICszMTMsNyBAQCBwcml2YXRlOgogICAgIC8vIENhbGxlcnMgc2hvdWxkIHRyeSB0byBjcmVhdGUg
dGhlIENvbnNvbGVNZXNzYWdlIHRoZW1zZWx2ZXMuCiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0g
MCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJl
ciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
KSA9IDA7CisKICAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hlZFNjcmlwdCopOwogCiAgICAgdmlydHVh
bCB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTVlY2RkYmMz
NDZmYjljMTRiZjk3NjM0NDg4MDI0YjgyYTc3ZWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmNwcApAQCAtMCwwICsxLDYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgiCisKKyNp
bmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUpOworCitSZWY8U2hhZG93
UmVhbG1HbG9iYWxTY29wZT4gU2hhZG93UmVhbG1HbG9iYWxTY29wZTo6Y3JlYXRlKEpTRE9NR2xv
YmFsT2JqZWN0KiB3cmFwcGVyLCBTY3JpcHRNb2R1bGVMb2FkZXIqIGxvYWRlcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKHdyYXBwZXIsIGxvYWRl
cikpOworfQorCitTaGFkb3dSZWFsbUdsb2JhbFNjb3BlOjpTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
KEpTRE9NR2xvYmFsT2JqZWN0KiB3cmFwcGVyLCBTY3JpcHRNb2R1bGVMb2FkZXIqIGxvYWRlcikK
KyAgICA6IG1faW5jdWJhdGluZ1dyYXBwZXIod3JhcHBlcikKKyAgICAsIG1fcGFyZW50TG9hZGVy
KGxvYWRlcikKK3sKK30KKworU2NyaXB0TW9kdWxlTG9hZGVyJiBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlOjptb2R1bGVMb2FkZXIoKQoreworICAgIGlmIChtX21vZHVsZUxvYWRlcikKKyAgICAgICAg
cmV0dXJuICptX21vZHVsZUxvYWRlcjsKKworICAgIGF1dG8gd3JhcHBlciA9IG1fd3JhcHBlci5n
ZXQoKTsKKyAgICBBU1NFUlQod3JhcHBlcik7CisKKyAgICBtX21vZHVsZUxvYWRlciA9IG1fcGFy
ZW50TG9hZGVyLT5zaGFkb3dSZWFsbUxvYWRlcih3cmFwcGVyKS5tb3ZlVG9VbmlxdWVQdHIoKTsK
KyAgICByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOworfQorCitTaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
Ojp+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wN2EyNWQwYjliMzE5OWY2MTAzZGE1OTRmMThjYWE3ZTc2NDY3MzVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFkb3dSZWFsbUdsb2JhbFNjb3Bl
LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XZWFrLmg+CisjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRE9NR2xvYmFsT2Jq
ZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxv
YWRlcjsKKworY2xhc3MgU2hhZG93UmVhbG1HbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFNoYWRvd1JlYWxtR2xvYmFsU2NvcGU+IHsKKyAgICBmcmllbmQgY2xhc3MgSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlQmFzZTsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNoYWRvd1JlYWxt
R2xvYmFsU2NvcGUpOworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTaGFkb3dSZWFsbUdsb2Jh
bFNjb3BlPiBjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBTY3JpcHRNb2R1bGVMb2FkZXIqKTsK
KyAgICB+U2hhZG93UmVhbG1HbG9iYWxTY29wZSgpOworCisgICAgU2hhZG93UmVhbG1HbG9iYWxT
Y29wZSYgc2VsZigpOworICAgIFNjcmlwdE1vZHVsZUxvYWRlciYgbW9kdWxlTG9hZGVyKCk7Cisg
ICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSogd3JhcHBlcigpOworCitwcm90ZWN0ZWQ6
CisgICAgU2hhZG93UmVhbG1HbG9iYWxTY29wZShKU0RPTUdsb2JhbE9iamVjdCosIFNjcmlwdE1v
ZHVsZUxvYWRlciopOworCitwcml2YXRlOgorICAgIEpTQzo6V2VhazxKU0RPTUdsb2JhbE9iamVj
dD4gbV9pbmN1YmF0aW5nV3JhcHBlcjsKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXIqIG1fcGFyZW50
TG9hZGVyIHsgbnVsbHB0ciB9OworICAgIEpTQzo6V2VhazxKU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGVCYXNlPiBtX3dyYXBwZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRl
cj4gbV9tb2R1bGVMb2FkZXI7Cit9OworCitpbmxpbmUgU2hhZG93UmVhbG1HbG9iYWxTY29wZSYg
U2hhZG93UmVhbG1HbG9iYWxTY29wZTo6c2VsZigpCit7CisgICAgcmV0dXJuICp0aGlzOworfQor
CitpbmxpbmUgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSogU2hhZG93UmVhbG1HbG9iYWxT
Y29wZTo6d3JhcHBlcigpCit7CisgICAgcmV0dXJuIG1fd3JhcHBlci5nZXQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TaGFk
b3dSZWFsbUdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93UmVhbG1H
bG9iYWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZjNDNiNThiZjIxNjJiMTgzOTgzMGEwYjMxMDNk
YjU5YjQ4ZjA4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2hhZG93
UmVhbG1HbG9iYWxTY29wZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRXhwb3NlZD1TaGFkb3dSZWFs
bSwKKyAgICBKU0xlZ2FjeVBhcmVudD1KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLAorICAg
IEdsb2JhbD1TaGFkb3dSZWFsbSwKKyAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKK10gaW50
ZXJmYWNlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
aGFkb3dSZWFsbUdsb2JhbFNjb3BlIHNlbGY7Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI2NmY1ZjAzZDdlYmM1MjgwNmU1NWM2MDE3MjE0
MTQ3MzlhOTMzNzIuLmVhNWQ4NTFlNmI0ZmY0YWM0N2Q3YTUzMmE3Yjc2OGMzYzY3NzQzZTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMi0wMS0yMSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4K
KworICAgICAgICBbU2hhZG93IFJlYWxtc10gVXNlIFdlYkNvcmUgbW9kdWxlIGxvYWRlcnMgZm9y
IHNoYWRvdyByZWFsbSBpbXBvcnRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAg
ICAgIChCaW5kaW5nc1Rlc3RzLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAg
ICAgICAgKEJpbmRpbmdzVGVzdHMubWFpbik6CisKIDIwMjItMDEtMTkgIEpvbmF0aGFuIEJlZGFy
ZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtFV1NdIFVzZSB0b2tlbiB3aGVuIHBy
b2Nlc3NpbmcgaG9vawpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5n
cy9tYWluLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CmluZGV4
IDAyMmQwOWU4NjkzMTFmMDA0NDM0MDk2OWNhMzQ5ODVjYjcyMGVhNTcuLmNlOGI1MDYzMTBmMTk3
ZDI1M2E1YjUxODU5ZjE3ZDZlMzE5ZDVhN2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmluZGluZ3MvbWFpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAg
ICAgICAgIGV4aXRfY29kZSA9IGUuZXhpdF9jb2RlCiAgICAgICAgIHJldHVybiBleGl0X2NvZGUK
IAotICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9k
aXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtl
ZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwg
dGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICBkZWYgZ2VuZXJhdGVfc3Vw
cGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3
aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmts
ZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAg
ICAgICAgIGlkbF9maWxlc19saXN0ID0gdGVtcGZpbGUubWtzdGVtcCgpCiAgICAgICAgIGZvciBp
bnB1dF9maWxlIGluIG9zLmxpc3RkaXIoaW5wdXRfZGlyZWN0b3J5KToKICAgICAgICAgICAgIChu
YW1lLCBleHRlbnNpb24pID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dF9maWxlKQpAQCAtOTQsNiAr
OTQsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVu
dGFsTWFrZWZpbGVEZXBzJywgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwK
ICAgICAgICAgICAgICAgICctLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUnLCB3aW5kb3dfY29uc3Ry
dWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUnLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKKyAgICAgICAg
ICAgICAgICctLXNoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2hhZG93
cmVhbG1nbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLWRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIGRlZGljYXRlZHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHNlcnZpY2V3b3JrZXJnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXNoYXJlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLApAQCAtMTk5LDYgKzIwMCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGVuYW1lID0gJ1N1cHBs
ZW1lbnRhbERlcGVuZGVuY2llcy5kZXAnCiAgICAgICAgIGRvbV93aW5kb3dfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lID0gJ0RPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHdvcmtlcmds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCisgICAgICAgIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lID0gJ1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAg
ICAgICBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAn
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBzZXJ2
aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHNoYXJlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdTaGFyZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGwnCkBAIC0yMTMsNiArMjE1LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoK
ICAgICAgICAgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSA9IG9zLnBhdGgu
am9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRf
ZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlbmFtZSkKICAg
ICAgICAgd2luZG93X2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0
b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIGRvbV93
aW5kb3dfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2Vs
Zi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZW5hbWUpCisgICAgICAgIHNoYWRvd3JlYWxtZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYu
cmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2hhZG93cmVhbG1nbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5v
dCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIGRlZGljYXRlZHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgc2VydmljZXdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0
b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNlcnZp
Y2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHNoYXJl
ZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtf
ZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rvcnks
IHNoYXJlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKQEAgLTIyMSw3
ICsyMjQsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBhdWRpb3dvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBp
ZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dvcmts
ZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHRlc3RnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBu
b3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogCi0gICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3Vw
cGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5k
ZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3df
Y29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBk
ZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFyZWR3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBw
YWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSk6CisgICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3ko
aW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50
YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFkb3dyZWFsbWdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzaGFy
ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgICAgICBwcmludCgnRmFpbGVkIHRv
IGdlbmVyYXRlIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZS4nKQogICAgICAgICAgICAg
c2h1dGlsLnJtdHJlZSh3b3JrX2RpcmVjdG9yeSkKICAgICAgICAgICAgIHJldHVybiAtMQpAQCAt
MjMzLDYgKzIzNiw4IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAgYWxs
X3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2No
YW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBh
bGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKKyAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVf
Y2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBz
aGFkb3dyZWFsbWdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CisgICAgICAgICAg
ICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVj
dF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVj
dG9yeSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToK
ICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlm
IHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwg
aW5wdXRfZGlyZWN0b3J5LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmODY4ZTBkYjM0MTRkMDk2MGY5ZDk3YjgzNTNmZTM0ZjdhYTBmMzYy
Li41ZGNmNDg0ODY5ZjdhOGYwOGQzNGNiOTQxYzJiNTExZWIwNDI4MDExIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMjItMDEtMjEgIEpvc2VwaCBHcmllZ28gIDxqZ3JpZWdvQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW1NoYWRvdyBSZWFsbXNdIFVzZSBXZWJDb3JlIG1vZHVsZSBsb2FkZXJzIGZv
ciBzaGFkb3cgcmVhbG0gaW1wb3J0VmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNDE1NQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIEltcHJvdmUgdGVzdCBjb3ZlcmFnZSBhIGJpdCBmb3Igc2hhZG93IHJl
YWxtcywgZXNwZWNpYWxseSBydW5uaW5nCisgICAgICAgIG5lc3RlZCwgaW4gd29ya2VyIGNvbnRl
eHRzLCBvciBpbiBpZnJhbWVzLgorCisgICAgICAgICoganMvU2hhZG93UmVhbG0tZXZhbHVhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1ldmFsdWF0ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLXdvcmtlci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9zY3JpcHQtdGVzdHMvU2hhZG93UmVhbG0tZXZhbHVhdGUuanM6IEFkZGVkLgorICAg
ICAgICAoYXNzZXJ0X2Nsb3NlZF9vcGVuZXIpOgorICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5j
IHQpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5q
czogQWRkZWQuCisgICAgICAgICh3cmFwcGVkTG9nKToKKyAgICAgICAgKHByb21pc2VfdGVzdC5h
c3luYyB0KToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvZXhhbXBsZS1tb2R1bGUuanM6IEFk
ZGVkLgorICAgICAgICAoY2hlY2spOgorICAgICAgICAobG9nX2VxdWFsKToKKyAgICAgICAgKGNo
ZWNrX25lc3RlZCk6CisgICAgICAgIChzZXRWYWx1ZSk6CisgICAgICAgICoganMvc2NyaXB0LXRl
c3RzL3NoYWRvdy1yZWFsbS13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0X2VxdWFs
cyk6CisgICAgICAgIChhc3luYyB0ZXN0KToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKwogMjAy
Mi0wMS0yMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgV1BU
IHZlcnNpb24gb2YgY3NzL2Nzcy1jYXNjYWRlL3BhcnNpbmcvbGF5ZXItaW1wb3J0LXBhcnNpbmcu
aHRtbCBjcmFzaGVzIHdpdGggbnVsbHB0cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL2lmcmFtZS1zaGFkb3ctcmVhbG0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2lmcmFtZS1zaGFkb3ctcmVhbG0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhhZDc5OTJkMzdiM2JmYTI1NDRhODY5MGYzMWI5Y2Y1NzFhZTAxZDMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaWZyYW1lLXNoYWRvdy1yZWFsbS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IHNoYWRvdyByZWFsbXMgY2Fu
IGxvYWQgbW9kdWxlcyBmcm9tIGRpZmZlcmVudC1vcmlnaW4gaWZyYW1lIGNvbnRleHRzCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50LmRhdGEgaXMgNDIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaWZyYW1lLXNoYWRvdy1yZWFsbS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1zaGFkb3ctcmVhbG0uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMmQ5YjViNDE2MGZiYWRjNTcyNmQ4ZTJjNzI1MmM1OTRhNTRhNTNhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1zaGFkb3ctcmVh
bG0uaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNl
U2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGJvZHk+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXNoYWRvdy1yZWFsbS1zdWJmcmFtZS5o
dG1sIj48L2lmcmFtZT4KKyAgICA8c2NyaXB0PgorICAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGF0
IHNoYWRvdyByZWFsbXMgY2FuIGxvYWQgbW9kdWxlcyBmcm9tIGRpZmZlcmVudC1vcmlnaW4gaWZy
YW1lIGNvbnRleHRzIik7CisKKyAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAg
ICAgICBzaG91bGRCZSgiZXZlbnQuZGF0YSIsICI0MiIpOworICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgIH0pOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0tc3ViZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXNo
YWRvdy1yZWFsbS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZmQzMmUyMDA1YjI2MDFhY2I3
MjE0OGFjNGY2MjQ5MzkxYjIxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0tc3ViZnJhbWUuaHRtbApA
QCAtMCwwICsxLDEwIEBACis8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICBvbmxvYWQgPSBhc3lu
YyBmdW5jdGlvbiAoKQorICAgICB7CisgICAgICAgICB2YXIgc3IgPSBuZXcgU2hhZG93UmVhbG0o
KTsKKyAgICAgICAgIHZhciBibG9vcF92YWwgPSBhd2FpdCBzci5pbXBvcnRWYWx1ZSgiLi9pZnJh
bWUtc2hhZG93LXJlYWxtLmpzIiwgImJsb29wIik7CisgICAgICAgICB3aW5kb3cucGFyZW50LnBv
c3RNZXNzYWdlKGJsb29wX3ZhbCwgIioiKTsKKyAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pZnJh
bWUtc2hhZG93LXJlYWxtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNl
cy9pZnJhbWUtc2hhZG93LXJlYWxtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYmQzMjU2M2Y0NzIzY2NlOTYy
MGUzNjllMTMxM2YyZjdhM2IyMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lmcmFtZS1zaGFkb3ctcmVhbG0uanMKQEAgLTAsMCArMSBA
QAorZXhwb3J0IGNvbnN0IGJsb29wID0gNDI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9T
aGFkb3dSZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dS
ZWFsbS1ldmFsdWF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY5ODA0OTczZmRlYWFjY2Zi
NGRhMzNiNjNmZGI5MzgyNWNmNzUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L1NoYWRvd1JlYWxtLWV2YWx1YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3Qg
dG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5ldmFs
dWF0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIHdpbmRvdy5jbG9z
ZSgpIGFmZmVjdHMgbmFtZSB0YXJnZXRpbmcgaW1tZWRpYXRlbHkKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZXZhbHVhdGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk5NDcxNDU3OWU3ZTg1NjAzNTdl
ZGMyNTU4MmRmN2E4NDkwZjAxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLWV2YWx1YXRlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
anNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBjb3JyZWN0
IGJlaGF2aW91ciBvZiBTaGFkb3dSZWFsbS5wcm90b3R5cGUuZXZhbHVhdGUiKTsKKworICAgIGZ1
bmN0aW9uIGFzc2VydF9jbG9zZWRfb3BlbmVyKHcsIGNsb3NlZCwgb3BlbmVyKSB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMody5jbG9zZWQsIGNsb3NlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
dy5vcGVuZXIsIG9wZW5lcik7CisgICAgfQorCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgICAgICBjb25zdCBvcGVuZWUgPSB3aW5kb3cub3BlbigiIiwgImdyZWF0bmFtZSIpOwor
ICAgICAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisKKyAg
ICAgICAgLy8gc2V0dXAgcmVhbG0gbmVzdGVkIGluIG91dGVyU2hhZG93UmVhbG0KKyAgICAgICAg
b3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgidmFyIGlubmVyUmVhbG0gPSBuZXcgU2hhZG93UmVh
bG0oKTsiKTsKKyAgICAgICAgb3V0ZXJTaGFkb3dSZWFsbS5ldmFsdWF0ZSgidmFyIGNhbGxJbklu
bmVyID0gaW5uZXJSZWFsbS5ldmFsdWF0ZShcIihjYikgPT4gY2IoKVwiKTsiKTsKKworICAgICAg
ICBjb25zdCBjYWxsSW5OZXN0ZWRSZWFsbSA9IG91dGVyU2hhZG93UmVhbG0uZXZhbHVhdGUoIihj
YikgPT4gY2FsbEluSW5uZXIoY2IpIik7CisKKyAgICAgICAgLy8gY2FsbCBjbG9zZSB3aW5kb3cg
dHdvIGxldmVscyBkZWVwCisgICAgICAgIGFzc2VydF9jbG9zZWRfb3BlbmVyKG9wZW5lZSwgZmFs
c2UsIHNlbGYpOworICAgICAgICBjYWxsSW5OZXN0ZWRSZWFsbSgoKSA9PiBvcGVuZWUuY2xvc2Uo
KSk7CisgICAgICAgIC8vIG9wZW5lZS5jbG9zZSgpCisgICAgICAgIGFzc2VydF9jbG9zZWRfb3Bl
bmVyKG9wZW5lZSwgdHJ1ZSwgc2VsZik7CisgICAgfSwgIndpbmRvdy5jbG9zZSgpIGFmZmVjdHMg
bmFtZSB0YXJnZXRpbmcgaW1tZWRpYXRlbHkiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZyYW1lLWRldGFjaC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtZGV0YWNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmUyYzhlMWJjNmYwM2QzZjcyZTE5NTI5NTc0YmNlMDQy
Mjc5NGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZy
YW1lLWRldGFjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB0byBlbnN1cmUg
Y29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93IFJlYWxtIG9iamVjdHMgdGhhdCBlc2NhcGUgdGhl
aXIgb3JpZ2luYXRpbmcgaWZyYW1lCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitb
b2JqZWN0IFdpbmRvd10KK1tvYmplY3QgV2luZG93XQorZGV0YWNoaW5nIGlmcmFtZQorW29iamVj
dCBTaGFkb3dSZWFsbV0KK2Ryb3BwaW5nIHJlYWxtIHZhbHVlCitQQVNTICgpID0+IGNoZWNrRm4y
KHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9TaGFkb3dSZWFsbS1pZnJhbWUtZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dS
ZWFsbS1pZnJhbWUtZGV0YWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2NTFmMDg5N2QyNjM3ZDQxYWVl
OGE0MzBiYmU4Y2EyZmNiOWM0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL1No
YWRvd1JlYWxtLWlmcmFtZS1kZXRhY2guaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3NoYWRvdy1yZWFsbS1pZnJh
bWUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisgZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNv
cnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvdyBSZWFsbSBvYmplY3RzIHRoYXQgZXNjYXBlIHRoZWly
IG9yaWdpbmF0aW5nIGlmcmFtZSIpOworIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
IGZ1bmN0aW9uIHdyYXBwZWRMb2cocHJlZml4KSB7CisgICAgIHJldHVybiBmdW5jdGlvbiAobXNn
KSB7CisgICAgICAgICBkZWJ1ZyhwcmVmaXggKyAiOiAiICsgbXNnKTsKKyAgICAgfTsKKyB9CisK
KyBsZXQgZnJhbWUgPSB3aW5kb3cuZnJhbWVzWzBdOworIGRlYnVnKGZyYW1lKTsKKyBmcmFtZS5v
bmxvYWQgPSBhc3luYyAoKSA9PiB7CisgICAgIGRlYnVnKGZyYW1lKTsKKyAgICAgbGV0IHJlYWxt
ID0gZnJhbWUucmVhbG07CisgICAgIGRlYnVnKCJkZXRhY2hpbmcgaWZyYW1lIik7CisgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXS5yZW1vdmUoKQorICAgICAk
dm0uZ2MoKTsKKyAgICAgZnJhbWUgPSBudWxsOworICAgICBkZWJ1ZyhyZWFsbSk7CisgICAgIGNv
bnN0IGNoZWNrRm4yID0gYXdhaXQgcmVhbG0uaW1wb3J0VmFsdWUoIi4vcmVzb3VyY2VzL2V4YW1w
bGUtbW9kdWxlLmpzIiwgImNoZWNrIik7CisgICAgIGRlYnVnKCJkcm9wcGluZyByZWFsbSB2YWx1
ZSIpCisgICAgIHJlYWxtID0gbnVsbDsKKyAgICAgJHZtLmdjKCk7CisgICAgIHNob3VsZEJlKCgp
ID0+IGNoZWNrRm4yKHdyYXBwZWRMb2coInNoYWRvd1JlYWxtIikpLAorICAgICAgICAgICAgICAi
dHJ1ZSIpOworICAgICBmaW5pc2hKU1Rlc3QoKTsKKyB9CisKKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pZnJhbWUtc2Fu
ZGJveGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1z
YW5kYm94ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyOGFmYTYzZTJjMjgxZTBlNDA1ZGIw
MGE5ZmE0NTVmZjM1ZTg5OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9TaGFk
b3dSZWFsbS1pZnJhbWUtc2FuZGJveGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitU
ZXN0IHRvIGVuc3VyZSBTaGFkb3dSZWFsbXMgcnVubmluZyBpbiBhIHNhbmRib3hlZCBpZnJhbWUg
ZG8gbm90IGFjY2VzcyB0aGUgcGFyZW50IHdpbmRvdyBvYmplY3QKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK2F0dGFjaGVkIGZyYW1lczogMQorZGV0YWNoaW5nIGlmcmFtZQorZHJv
cHBpbmcgcmVhbG0gdmFsdWUKK1BBU1MgKCkgPT4gY2hlY2tGbjIod3JhcHBlZExvZygic2hhZG93
UmVhbG0iKSkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFt
ZS1zYW5kYm94ZWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWlmcmFtZS1zYW5k
Ym94ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWIxNmQ2YTllNmI4ZWZkZTMwZDk3MjQ2ZTFmNzA1N2Q4
Zjg4YTBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taWZy
YW1lLXNhbmRib3hlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09w
dGlvbnM9LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9zaGFkb3ctcmVhbG0taWZyYW1lLmh0bWwiIHNhbmRi
b3g9ImFsbG93LXNjcmlwdHMiPjwvaWZyYW1lPgorPHNjcmlwdD4KKyBkZXNjcmlwdGlvbigiVGVz
dCB0byBlbnN1cmUgU2hhZG93UmVhbG1zIHJ1bm5pbmcgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGRv
IG5vdCBhY2Nlc3MgdGhlIHBhcmVudCB3aW5kb3cgb2JqZWN0Iik7Cisgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgZnVuY3Rpb24gd3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICAgcmV0
dXJuIGZ1bmN0aW9uIChtc2cpIHsKKyAgICAgICAgIGRlYnVnKHByZWZpeCArICI6ICIgKyBtc2cp
OworICAgICB9OworIH0KKworIGRlYnVnKCJhdHRhY2hlZCBmcmFtZXM6ICIgKyB3aW5kb3cuZnJh
bWVzLmxlbmd0aCk7CisgbGV0IGZyYW1lID0gd2luZG93LmZyYW1lc1swXTsKKyB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGFzeW5jICgpID0+IHsKKyAgICAgbGV0IHJlYWxtID0g
ZnJhbWUucmVhbG07CisgICAgIGRlYnVnKCJkZXRhY2hpbmcgaWZyYW1lIik7CisgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXS5yZW1vdmUoKQorICAgICAkdm0u
Z2MoKTsKKyAgICAgZnJhbWUgPSBudWxsOworICAgICBjb25zdCBjaGVja0ZuMiA9IGF3YWl0IHJl
YWxtLmltcG9ydFZhbHVlKCIuL3Jlc291cmNlcy9leGFtcGxlLW1vZHVsZS5qcyIsICJjaGVjayIp
OworICAgICBkZWJ1ZygiZHJvcHBpbmcgcmVhbG0gdmFsdWUiKQorICAgICByZWFsbSA9IG51bGw7
CisgICAgICR2bS5nYygpOworICAgICBzaG91bGRCZSgoKSA9PiBjaGVja0ZuMih3cmFwcGVkTG9n
KCJzaGFkb3dSZWFsbSIpKSwKKyAgICAgICAgICAgICAgInRydWUiKTsKKyAgICAgZmluaXNoSlNU
ZXN0KCk7CisgfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL1NoYWRvd1JlYWxtLWltcG9ydFZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NjE0YzU1NWE4MDhiN2IyZmZiN2ZjNjE3OWY3MDc0NzQ4NTc5YjJjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogNDIKK1Rlc3QgdG8gZW5zdXJlIGNvcnJl
Y3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5pbXBvcnRWYWx1ZQorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworc2hhZG93UmVhbG06IGNhbGxpbmcgbmVzdGVkIHJl
YWxtIHdyYXBwZXIgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sKK3NoYWRvd1JlYWxtOiBuZXN0ZWQg
cmVhbG0gZXZhbCB1c2VzIGNvcnJlY3QgZ2xvYmFsOiBPSworCitQQVNTIGNhbiBpbXBvcnQgbW9k
dWxlIGluIGEgc2hhZG93IHJlYWxtCitQQVNTIGNhbiBuZXN0IHJlYWxtcworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1pbXBvcnRWYWx1ZS5odG1sIGIvTGF5b3V0VGVz
dHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2E4YzY1MzAy
NzNjMzMzM2M1ZWEwMTg5OWM1MjM2NmQxZDQzNDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvU2hhZG93UmVhbG0taW1wb3J0VmFsdWUuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBqc2NPcHRpb25zPS0tdXNlU2hhZG93UmVhbG09dHJ1ZSBdIC0tPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmMgPS4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdG8g
ZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIFNoYWRvd1JlYWxtLnByb3RvdHlwZS5pbXBvcnRW
YWx1ZSIpOworCisgICAgZnVuY3Rpb24gd3JhcHBlZExvZyhwcmVmaXgpIHsKKyAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uIChtc2cpIHsKKyAgICAgICAgICAgIGRlYnVnKHByZWZpeCArICI6ICIgKyBt
c2cpOworICAgICAgICB9OworICAgIH0KKworICAgIGNvbnN0IG1vZHVsZV9wYXRoID0gIi4vcmVz
b3VyY2VzL2V4YW1wbGUtbW9kdWxlLmpzIjsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBvdXRlclNoYWRvd1JlYWxtID0gbmV3IFNoYWRvd1JlYWxtKCk7CisgICAg
Y29uc3QgY2hlY2tGbiA9IGF3YWl0IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUobW9kdWxl
X3BhdGgsICJjaGVjayIpOworICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJz
aGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisKKyAgICBjb25zdCBvdXJNb2R1bGUgPSBhd2FpdCBpbXBv
cnQobW9kdWxlX3BhdGgpOworICAgIGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCB0cnVl
LCAiYmxvb3AiKTsKKyAgICBvdXJNb2R1bGUuc2V0VmFsdWUoNDIpOworICAgIGFzc2VydF9lcXVh
bHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7CisKKyAgICBjb25zdCBpbXBvcnRlZFZhbCA9IGF3YWl0
IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUobW9kdWxlX3BhdGgsICJ2YWx1ZSIpOworICAg
IGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwsIHRydWUpOworICAgIGNvbnN0IHNldFZhbHVlSW1w
b3J0ZWQgPSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKG1vZHVsZV9wYXRoLCAi
c2V0VmFsdWUiKTsKKyAgICBzZXRWYWx1ZUltcG9ydGVkKDEwMCk7CisgICAgY29uc3QgaW1wb3J0
ZWRWYWwyID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZShtb2R1bGVfcGF0aCwg
InZhbHVlIik7CisgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhvdXJNb2R1bGUudmFsdWUsIDQyKTsKKyAgICB9LCAiY2FuIGltcG9ydCBtb2R1
bGUgaW4gYSBzaGFkb3cgcmVhbG0iKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICAgICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAg
ICAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5pbXBvcnRWYWx1ZSht
b2R1bGVfcGF0aCwgImNoZWNrX25lc3RlZCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNoZWNr
Rm4od3JhcHBlZExvZygic2hhZG93UmVhbG0iKSksIHRydWUpOworICAgIH0sICJjYW4gbmVzdCBy
ZWFsbXMiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJmNDQ5MTliMDNh
ODI0ZjE2NjQ1MGU4YmY3NzE4YzczOTQ1MTAxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL1NoYWRvd1JlYWxtLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGhpcyB0ZXN0cyB0aGF0IFNoYWRvdyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsg
cHJvcGVybHkgaW5zaWRlIHdvcmtlciBjb250ZXh0cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvc2hhZG93LXJlYWxtLXdvcmtlci5q
cworUEFTUyBbV29ya2VyXSBpbXBvcnQtdmFsdWUKK1tXb3JrZXJdIHNoYWRvd1JlYWxtOiBjYWxs
aW5nIG5lc3RlZCByZWFsbSB3cmFwcGVyIHVzZXMgY29ycmVjdCBnbG9iYWw6IE9LCitbV29ya2Vy
XSBzaGFkb3dSZWFsbTogbmVzdGVkIHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbDogT0sK
K1BBU1MgW1dvcmtlcl0gbmVzdGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0t
d29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS13b3JrZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMjgxMTk4NTY5MmRkOTk1ZTc2MmVhNjEzODE5NzJkYmU4NmZiMzViCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0td29ya2VyLmh0bWwKQEAgLTAs
MCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVzZVNoYWRvd1JlYWxtPXRy
dWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0
IFNoYWRvdyBSZWFsbSBBUElzIGFyZSBhdmFpbGFibGUgYW5kIHdvcmsgcHJvcGVybHkgaW5zaWRl
IHdvcmtlciBjb250ZXh0cyIpOworICAgICAgICAgY29uc3Qgd29ya2VyID0gc3RhcnRXb3JrZXIo
InJlc291cmNlcy9zaGFkb3ctcmVhbG0td29ya2VyLmpzIik7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVzb3VyY2VzL2V4YW1wbGUtbW9kdWxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVz
b3VyY2VzL2V4YW1wbGUtbW9kdWxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMmViYzdhNTAzMGVkODA0MDEw
MzJiMDgzOTUyOTM0OWU1MjhiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZXNvdXJjZXMvZXhhbXBsZS1tb2R1bGUuanMKQEAgLTAsMCArMSwzMiBAQAordmFyIHZhbHVlID0g
dHJ1ZTsKKwordmFyIGNoZWNrID0gZnVuY3Rpb24obG9nKSB7CisgICAgaWYgKE9iamVjdC5nZXRQ
cm90b3R5cGVPZihnbG9iYWxUaGlzKSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgeworICAgICAgICBs
b2coImdsb2JhbFRoaXMgcHJvdG90eXBlIGlzIE9iamVjdC5wcm90b3R5cGUiKTsKKyAgICAgICAg
bG9nKE9iamVjdC5nZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzKS50b1N0cmluZygpKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24g
bG9nX2VxdWFsKGxvZywgbXNnLCB4LCB5KSB7CisgICAgY29uc3QgcmVzdWx0ID0geCA9PSB5Owor
ICAgIGxvZyhgJHttc2d9OiAke3Jlc3VsdCA/ICdPSycgOiAnRkFJTEVEJ31gKTsKK30KKwordmFy
IGNoZWNrX25lc3RlZCA9IGZ1bmN0aW9uKGxvZykgeworICAgIGNvbnN0IHNyID0gbmV3IFNoYWRv
d1JlYWxtKCk7CisgICAgZ2xvYmFsVGhpcy54ID0gMTAwOworICAgIHNyLmV2YWx1YXRlKGBnbG9i
YWxUaGlzLnggPSA0MmApOworICAgIGNvbnN0IGYgPSBzci5ldmFsdWF0ZShgKCkgPT4ge3JldHVy
biBnbG9iYWxUaGlzLng7fWApOworICAgIGxvZ19lcXVhbChsb2csICJjYWxsaW5nIG5lc3RlZCBy
ZWFsbSB3cmFwcGVyIHVzZXMgY29ycmVjdCBnbG9iYWwiLCA0MiwgZigpKTsKKyAgICBsb2dfZXF1
YWwobG9nLCAibmVzdGVkIHJlYWxtIGV2YWwgdXNlcyBjb3JyZWN0IGdsb2JhbCIsIDQyLCBzci5l
dmFsdWF0ZShgZ2xvYmFsVGhpcy54YCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2YXIgc2V0
VmFsdWUgPSBmdW5jdGlvbiAobmV3VmFsdWUpIHsKKyAgICBjb25zb2xlLmxvZyhuZXdWYWx1ZSk7
CisgICAgdmFsdWUgPSBuZXdWYWx1ZTsKK30KKworZXhwb3J0IHsgdmFsdWUsIHNldFZhbHVlLCBj
aGVjaywgY2hlY2tfbmVzdGVkIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJj
ZXMvc2hhZG93LXJlYWxtLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL3No
YWRvdy1yZWFsbS1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjFlMzdiN2Q1NjhiZjI3OTFkMjEx
ODc3ZTFkY2ZlMjVlNjg5ZGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVz
b3VyY2VzL3NoYWRvdy1yZWFsbS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPjwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgIHdpbmRvdy5yZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgpOworICAg
ICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgnaGknLCAiKiIpOworICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZXNvdXJjZXMvc2hhZG93LXJlYWxtLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNl
cy9zaGFkb3ctcmVhbG0td29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhMTNlNTBlMWFkMWMxYzQzYzI3
YTAxMDAzZGY5OWU0ZGY0N2UzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZXNvdXJjZXMvc2hhZG93LXJlYWxtLXdvcmtlci5qcwpAQCAtMCwwICsxLDUxIEBACitpbXBvcnRT
Y3JpcHRzKCIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiKTsKKworZnVuY3Rpb24gYXNz
ZXJ0X2VxdWFscyh4LCB5KSB7CisgICAgaWYgKHggPT09IHkpIHJldHVybjsKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoYGFzc2VydGlvbiBmYWlsdXJlOiBleHBlY3RlZCAke3h9LCBnb3QgJHt5fWApOwor
fQorCitmdW5jdGlvbiB3cmFwcGVkTG9nKHByZWZpeCkgeworICAgIHJldHVybiBmdW5jdGlvbiAo
bXNnKSB7CisgICAgICAgIGRlYnVnKHByZWZpeCArICI6ICIgKyBtc2cpOworICAgIH07Cit9CisK
KworYXN5bmMgZnVuY3Rpb24gdGVzdChrZXksIGYpIHsKKyAgICB0cnkgeworICAgICAgICBhd2Fp
dCBmKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKGtleSArIGUudG9T
dHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFBhc3NlZChrZXkpOwor
fQorCisoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGF3YWl0IHRlc3QoImltcG9ydC12YWx1ZSIs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgb3V0ZXJTaGFkb3dSZWFsbSA9IG5ldyBTaGFk
b3dSZWFsbSgpOworICAgICAgICBjb25zdCBjaGVja0ZuID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFs
bS5pbXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJjaGVjayIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKGNoZWNrRm4od3JhcHBlZExvZygic2hhZG93UmVhbG0iKSksIHRydWUpOwor
CisgICAgICAgIGNvbnN0IG91ck1vZHVsZSA9IGF3YWl0IGltcG9ydCgiLi9leGFtcGxlLW1vZHVs
ZS5qcyIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG91ck1vZHVsZS52YWx1ZSwgdHJ1ZSwgImJs
b29wIik7CisgICAgICAgIG91ck1vZHVsZS5zZXRWYWx1ZSg0Mik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7CisKKyAgICAgICAgY29uc3QgaW1wb3J0ZWRWYWwg
PSBhd2FpdCBvdXRlclNoYWRvd1JlYWxtLmltcG9ydFZhbHVlKCIuL2V4YW1wbGUtbW9kdWxlLmpz
IiwgInZhbHVlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW1wb3J0ZWRWYWwsIHRydWUpOwor
ICAgICAgICBjb25zdCBzZXRWYWx1ZUltcG9ydGVkID0gYXdhaXQgb3V0ZXJTaGFkb3dSZWFsbS5p
bXBvcnRWYWx1ZSgiLi9leGFtcGxlLW1vZHVsZS5qcyIsICJzZXRWYWx1ZSIpOworICAgICAgICBz
ZXRWYWx1ZUltcG9ydGVkKDEwMCk7CisgICAgICAgIGNvbnN0IGltcG9ydGVkVmFsMiA9IGF3YWl0
IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAidmFs
dWUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbXBvcnRlZFZhbDIsIDEwMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMob3VyTW9kdWxlLnZhbHVlLCA0Mik7CisgICAgfSk7CisKKyAgICBhd2Fp
dCB0ZXN0KCJuZXN0ZWQiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IG91dGVyU2hhZG93
UmVhbG0gPSBuZXcgU2hhZG93UmVhbG0oKTsKKyAgICAgICAgY29uc3QgY2hlY2tGbiA9IGF3YWl0
IG91dGVyU2hhZG93UmVhbG0uaW1wb3J0VmFsdWUoIi4vZXhhbXBsZS1tb2R1bGUuanMiLCAiY2hl
Y2tfbmVzdGVkIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2hlY2tGbih3cmFwcGVkTG9nKCJz
aGFkb3dSZWFsbSIpKSwgdHJ1ZSk7CisgICAgfSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KSgp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>