<?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>127409</bug_id>
          
          <creation_ts>2014-01-21 23:48:10 -0800</creation_ts>
          <short_desc>Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer</short_desc>
          <delta_ts>2014-01-24 10:40:11 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970601</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-21 23:48:10 -0800</bug_when>
    <thetext>The m_recompileTimer recompileAllJSFunctions after a delay timer is no longer needed. Any path reaching recompileAllJSFunctionsSoon was not inside of a JS stack, the vm.entryScope is always empty. If we ever do hit this again there is an ASSERT inside of JSC::Debugger that would catch this.

Now that we don&apos;t delay the call to recompileAllJSFunctions, be sure to set the Debugger on the Page/JSGlobalObjects before calling recompileAllJSFunctions in order to get the Debugger sourceParsed callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970602</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-21 23:48:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/15878387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970604</commentid>
    <comment_count>2</comment_count>
      <attachid>221834</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-21 23:52:13 -0800</bug_when>
    <thetext>Created attachment 221834
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970715</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-22 09:39:50 -0800</bug_when>
    <thetext>/Volumes/Data/EWS/WebKit/Source/WebCore/bindings/js/ScriptDebugServer.cpp:306:5: error: use of undeclared identifier &apos;TimerBase&apos;
    TimerBase::fireTimersInNestedEventLoop();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970716</commentid>
    <comment_count>4</comment_count>
      <attachid>221834</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-22 09:40:31 -0800</bug_when>
    <thetext>Comment on attachment 221834
[PATCH] Proposed Fix

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

&gt; Source/WebCore/bindings/js/ScriptDebugServer.h:-37
&gt; -#include &quot;Timer.h&quot;

I think you need to keep the include or move it to the C++ file to fix the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970751</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 10:35:27 -0800</bug_when>
    <thetext>Oops yes, I forgot to git add that part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970762</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 10:53:26 -0800</bug_when>
    <thetext>Landed &lt;http://trac.webkit.org/changeset/162534&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970838</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 12:58:42 -0800</bug_when>
    <thetext>Rolled this out in &lt;http://trac.webkit.org/changeset/162550&gt; because it broke tests. Investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970955</commentid>
    <comment_count>8</comment_count>
      <attachid>221927</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 17:45:32 -0800</bug_when>
    <thetext>Created attachment 221927
[PATCH] Proposed Fix - Passing Tests

Problem:
When the Web Inspector was implicitly closed via JavaScript (e.g. window.close() or in LayoutTests as window.internals.closeDummyInspectorFrontend()) we were disconnecting InspectorDebuggerAgent and calling to recompileAllJSFunctions from within a JavaScript stack.

Solution:
Give agents a reason enum when they are disconnecting. The reasons can be:
  - InspectedObjectIsBeingDestroyed - no need to recompile functions here, the object is going to be deleted.
  - FrontendDisconnected - we should recompile functions so the page can be as good as new

Other Stuff:
Now that we don&apos;t use a Timer for recompiling scripts, as soon as the backend gets DebuggerAgent.enable, it starts recompiling and sending sourceParsed events to the frontend. That changes the order expected by inspector-protocol tests. Not in any significant way, but it makes the setBreakpointsActive calls output seemingly random. Remove all these unnecessary calls and output of &quot;Breakpoints Enabled&quot;. Breakpoints are already enabled by default anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970963</commentid>
    <comment_count>9</comment_count>
      <attachid>221931</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 17:59:02 -0800</bug_when>
    <thetext>Created attachment 221931
[PATCH] Proposed Fix - Passing Tests

Hmm, rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970968</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 18:12:53 -0800</bug_when>
    <thetext>Well, this is unfortunate. Why don&apos;t the patches apply? =/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970974</commentid>
    <comment_count>11</comment_count>
      <attachid>221932</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 18:19:51 -0800</bug_when>
    <thetext>Created attachment 221932
[PATCH] Proposed Fix - Passing Tests

Again, now that the bug was reopened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970976</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-22 18:21:45 -0800</bug_when>
    <thetext>Attachment 221932 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h:59:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/WebInspector.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/inspector/agents/InspectorAgent.h:54:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/inspector/InspectorAgentBase.h:47:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h:56:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/JavaScriptCore/inspector/InspectorAgentRegistry.h:46:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 7 in 87 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970985</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-22 19:03:09 -0800</bug_when>
    <thetext>&gt;            Creating library C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\lib32\WebKit.lib and object C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\lib32\WebKit.exp
&gt;     1&gt;WebKit.exp : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::InspectorController::disconnectFrontend(void)&quot; (?disconnectFrontend@InspectorController@WebCore@@QAEXXZ)
&gt;     1&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\bin32\WebKit.dll : fatal error LNK1120: 1 unresolved externals
&gt;     1&gt;Done Building Project &quot;C:\cygwin\home\buildbot\WebKit\Source\WebKit\WebKit.vcxproj\WebKit\WebKit.vcxproj&quot; (Build target(s)) -- FAILED.

Symbol changed name because it takes a parameter now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971001</commentid>
    <comment_count>14</comment_count>
      <attachid>221932</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-22 20:27:50 -0800</bug_when>
    <thetext>Comment on attachment 221932
[PATCH] Proposed Fix - Passing Tests

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

r=me

&gt; Source/JavaScriptCore/inspector/InspectorAgentBase.h:38
&gt; +    InspectedObjectBeingDestroyed,

Can we be a little more specific here? Based on your comment below, how about &quot;InspectedPageClosed&quot;?

&gt; Source/WebCore/inspector/InspectorDebuggerAgent.cpp:127
&gt; +    disable(false);

Let&apos;s put &quot;false&quot; in a named local variable, to give context to its meaning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971257</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 11:43:38 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 221932 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221932&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/InspectorAgentBase.h:38
&gt; &gt; +    InspectedObjectBeingDestroyed,
&gt; 
&gt; Can we be a little more specific here? Based on your comment below, how about &quot;InspectedPageClosed&quot;?

If you&apos;re debugging a JSContext/JSContextRef this would mean the JSGlobalObject is being destroyed.
If you&apos;re debugging a WebCore::Page, this would mean the WebCore::Page is closing.

I think &quot;InspectedObject...&quot; better satisfies both of these and potential future inspector debuggable targets.

I&apos;m open to other naming suggestions. Would you prefer &quot;InspectedObjectClosed&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971283</commentid>
    <comment_count>16</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-23 12:25:47 -0800</bug_when>
    <thetext>&gt; If you&apos;re debugging a JSContext/JSContextRef this would mean the JSGlobalObject is being destroyed.
&gt; If you&apos;re debugging a WebCore::Page, this would mean the WebCore::Page is closing.

Got it.

&gt; I think &quot;InspectedObject...&quot; better satisfies both of these and potential future inspector debuggable targets.
&gt; 
&gt; I&apos;m open to other naming suggestions. Would you prefer &quot;InspectedObjectClosed&quot;?

Hmmm... no, I guess &quot;closed&quot; is not great, since, in the JSContext case you pointed out, nothing got &quot;closed&quot;.

I guess what we&apos;re trying track is which side will be destroyed. If the inspector will be destroyed, it needs to put the inspected thingy back to normal; if the inspected thingy will be destroyed, well, that&apos;s the end of that, and there&apos;s nothing to put back to normal.

How about:
InspectorDestroyed
InspectedObjectDestroyed

Even though &quot;object&quot; is still a bit abstract, hopefully similar phrasing will highlight the contrast between &quot;Inspector&quot; and &quot;InspectedObject&quot;.

Anyway, I&apos;ll leave the final decision up to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971302</commentid>
    <comment_count>17</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-23 13:00:39 -0800</bug_when>
    <thetext>&gt; How about:
&gt; InspectorDestroyed
&gt; InspectedObjectDestroyed
&gt; 
&gt; Even though &quot;object&quot; is still a bit abstract, hopefully similar phrasing will highlight the contrast between &quot;Inspector&quot; and &quot;InspectedObject&quot;.

I like those.

What about InspectedContextDestroyed instead of InspectedObjectDestroyed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971303</commentid>
    <comment_count>18</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-23 13:01:04 -0800</bug_when>
    <thetext>Or InspectedTargetDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971313</commentid>
    <comment_count>19</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 13:23:55 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Or InspectedTargetDestroyed.

Target &gt; Object &gt; Context.

I&apos;ll go with InspectedTargetDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971344</commentid>
    <comment_count>20</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-23 14:39:49 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971360</commentid>
    <comment_count>21</comment_count>
      <attachid>222031</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 15:12:33 -0800</bug_when>
    <thetext>Created attachment 222031
[PATCH] For Bots 1

This patch removes the windows export for the old symbol. Need the bot to tell me the new symbol name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971361</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-23 15:15:12 -0800</bug_when>
    <thetext>Attachment 222031 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h:59:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/WebInspector.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/inspector/agents/InspectorAgent.h:54:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/inspector/InspectorAgentBase.h:47:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h:56:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/JavaScriptCore/inspector/InspectorAgentRegistry.h:46:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 7 in 87 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971377</commentid>
    <comment_count>23</comment_count>
      <attachid>222037</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 16:01:08 -0800</bug_when>
    <thetext>Created attachment 222037
[PATCH] For Bots 2

With Windows Symbol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971381</commentid>
    <comment_count>24</comment_count>
      <attachid>222038</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 16:06:23 -0800</bug_when>
    <thetext>Created attachment 222038
[PATCH] For Bots 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971383</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-23 16:08:20 -0800</bug_when>
    <thetext>Attachment 222038 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h:59:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/WebInspector.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/inspector/agents/InspectorAgent.h:54:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/inspector/InspectorAgentBase.h:47:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h:56:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/JavaScriptCore/inspector/InspectorAgentRegistry.h:46:  The parameter name &quot;reason&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 7 in 88 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971416</commentid>
    <comment_count>26</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 17:24:50 -0800</bug_when>
    <thetext>Boom! Windows built. I&apos;ll land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971452</commentid>
    <comment_count>27</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 18:34:04 -0800</bug_when>
    <thetext>Landed &lt;http://trac.webkit.org/changeset/162676&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971525</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-23 22:47:59 -0800</bug_when>
    <thetext>This seems to have broken 42 tests:
http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r162690%20(2192)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971528</commentid>
    <comment_count>29</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-23 23:20:06 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; This seems to have broken 42 tests:
&gt; http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r162690%20(2192)/results.html

Bah, I&apos;ll look into this tomorrow. Thanks for pointing it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971645</commentid>
    <comment_count>30</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 10:38:05 -0800</bug_when>
    <thetext>Another internal method causing recompilation within a JS stack:

    window.internals.setJavaScriptProfilingEnabled(bool)

This Enables/Disables the Profiler which now recompiles synchronously within a JS stack. I can add a timer here in window.internals and do this after a loop. But its looking more and more like it might be better if the VM handled recompiling when appropriate instead of us trying to avoid calling it within a JS stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971647</commentid>
    <comment_count>31</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 10:40:11 -0800</bug_when>
    <thetext>Opened: &lt;https://webkit.org/b/127566&gt; fast/profiler tests ASSERTing after moving recompileAllJSFunctions off a timer</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221834</attachid>
            <date>2014-01-21 23:52:13 -0800</date>
            <delta_ts>2014-01-22 17:45:32 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>recompile.patch</filename>
            <type>text/plain</type>
            <size>9592</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZDViYWRlLi41MDQ1MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDEtMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGlt
ZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHREZWJ1Z1NlcnZlcjo6U2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICBSZW1vdmUg
bV9yZWNvbXBpbGVUaW1lciBhbmQgdGhlIHJlY29tcGlsZSBzb29uIGZ1bmN0aW9uLgorICAgICAg
ICBXZSBjYW4ganVzdCByZWNvbXBpbGUgaW1tZWRpYXRlbHkgaW4gYWxsIGV4aXN0aW5nIGNhc2Vz
LgorCisgICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZFJlbW92
ZUxhc3RMaXN0ZW5lcik6CisgICAgICAgIEFkZCBhICJkaWRBZGRGaXJzdExpc3RlbmVyIiB0byBt
YXRjaCAiZGlkUmVtb3ZlTGFzdExpc3RlbmVyIi4KKyAgICAgICAgT25seSByZWNvbXBpbGUgZnVu
Y3Rpb25zIHdoZW4gd2UgYXR0YWNoIHRoZSBkZWJ1Z2dlciBhbmQgd2hlbgorICAgICAgICB3ZSBk
ZXRhY2ggdGhlIGxhc3QgbGlzdGVuZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlw
dERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIFNhbWUgdGhp
bmcuIEFsc28gcmVhcnJhbmdlIHRoZSBmdW5jdGlvbnMgdG8gcmVhZCBiZXR0ZXIuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIFVzZSB0
aGUgZGlyZWN0IHJlY29tcGlsZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZW1vdmVkICJzb29u
IiB2ZXJzaW9uLgorCiAyMDE0LTAxLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9kZXJuaXplIFdlYkNvcmUvaW5zcGVjdG9yIHdpdGggbnVsbHB0
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1Nl
cnZlci5jcHAKaW5kZXggMWNlYzdiMy4uNTBkYWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC05NCwxMCArOTQs
MTIgQEAgdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVn
TGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdlKiBwYWcKICAgICBPd25QdHI8TGlzdGVuZXJTZXQ+JiBs
aXN0ZW5lcnMgPSBtX3BhZ2VMaXN0ZW5lcnNNYXAuYWRkKHBhZ2UsIG51bGxwdHIpLml0ZXJhdG9y
LT52YWx1ZTsKICAgICBpZiAoIWxpc3RlbmVycykKICAgICAgICAgbGlzdGVuZXJzID0gYWRvcHRQ
dHIobmV3IExpc3RlbmVyU2V0KTsKKworICAgIGJvb2wgd2FzRW1wdHkgPSBsaXN0ZW5lcnMtPmlz
RW1wdHkoKTsKICAgICBsaXN0ZW5lcnMtPmFkZChsaXN0ZW5lcik7CiAKLSAgICByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBwYWdlLT5zZXREZWJ1Z2dlcih0aGlzKTsKKyAgICBp
ZiAod2FzRW1wdHkpCisgICAgICAgIGRpZEFkZEZpcnN0TGlzdGVuZXIocGFnZSk7CiB9CiAKIHZv
aWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3Rl
bmVyKiBsaXN0ZW5lciwgUGFnZSogcGFnZSkKQEAgLTExMSw2ICsxMTMsNyBAQCB2b2lkIFBhZ2VT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlz
dGVuZXIsIFBhZ2UqCiAKICAgICBMaXN0ZW5lclNldCogbGlzdGVuZXJzID0gaXQtPnZhbHVlLmdl
dCgpOwogICAgIGxpc3RlbmVycy0+cmVtb3ZlKGxpc3RlbmVyKTsKKwogICAgIGlmIChsaXN0ZW5l
cnMtPmlzRW1wdHkoKSkgewogICAgICAgICBtX3BhZ2VMaXN0ZW5lcnNNYXAucmVtb3ZlKGl0KTsK
ICAgICAgICAgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKHBhZ2UpOwpAQCAtMTIwLDExICsxMjMsNyBA
QCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdM
aXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVj
b21waWxlQWxsSlNGdW5jdGlvbnMoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2lu
ZG93Ojpjb21tb25WTSgpKTsKLSAgICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5vdCBlbXB0
eSBwb3N0cG9uZSByZWNvbXBpbGF0aW9uLgotICAgIGlmIChKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KS0+ZW50cnlTY29wZSkKLSAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0g
ICAgZWxzZQotICAgICAgICBEZWJ1Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoSlNET01X
aW5kb3c6OmNvbW1vblZNKCkpOworICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9u
cyhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CiB9CiAKIFNjcmlwdERlYnVnU2VydmVyOjpMaXN0
ZW5lclNldCogUGFnZVNjcmlwdERlYnVnU2VydmVyOjpnZXRMaXN0ZW5lcnNGb3JHbG9iYWxPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTE2MSw2ICsxNjAsMTMgQEAgdm9p
ZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICAgICAgc2V0SmF2YVNjcmlwdFBhdXNlZChwYWdlLT5ncm91cCgp
LCBmYWxzZSk7CiB9CiAKK3ZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRBZGRGaXJzdExp
c3RlbmVyKFBhZ2UqIHBhZ2UpCit7CisgICAgLy8gU2V0IGRlYnVnZ2VyIGJlZm9yZSByZWNvbXBp
bGluZyB0byBnZXQgc291cmNlUGFyc2VkIGNhbGxiYWNrcy4KKyAgICBwYWdlLT5zZXREZWJ1Z2dl
cih0aGlzKTsKKyAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOworfQorCiB2b2lkIFBhZ2VT
Y3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2UpCiB7CiAg
ICAgQVNTRVJUKHBhZ2UpOwpAQCAtMTY4LDggKzE3NCw5IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVn
U2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVuZXIoUGFnZSogcGFnZSkKICAgICBpZiAobV9wYXVz
ZWRQYWdlID09IHBhZ2UpCiAgICAgICAgIG1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyA9
IHRydWU7CiAKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBwYWdlLT5z
ZXREZWJ1Z2dlcigwKTsKKyAgICAvLyBDbGVhciBkZWJ1Z2dlciBiZWZvcmUgcmVjb21waWxpbmcg
YmVjYXVzZSB3ZSBkbyBub3QgbmVlZCBzb3VyY2VQYXJzZWQgY2FsbGJhY2tzLgorICAgIHBhZ2Ut
PnNldERlYnVnZ2VyKG51bGxwdHIpOworICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CiB9
CiAKIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BXaGlsZVBhdXNlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdT
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZl
ci5oCmluZGV4IGVkN2YyNGUuLmM3MDJjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKIAorICAg
IHZvaWQgZGlkQWRkRmlyc3RMaXN0ZW5lcihQYWdlKik7CiAgICAgdm9pZCBkaWRSZW1vdmVMYXN0
TGlzdGVuZXIoUGFnZSopOwogCiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UGF1c2VkKGNvbnN0IFBh
Z2VHcm91cCYsIGJvb2wgcGF1c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBkYWM1MmEyLi43NTY0YzM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC01Nyw3
ICs1Nyw2IEBAIFNjcmlwdERlYnVnU2VydmVyOjpTY3JpcHREZWJ1Z1NlcnZlcihib29sIGlzSW5X
b3JrZXJUaHJlYWQpCiAgICAgOiBEZWJ1Z2dlcihpc0luV29ya2VyVGhyZWFkKQogICAgICwgbV9k
b25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzKHRydWUpCiAgICAgLCBtX2NhbGxpbmdMaXN0ZW5l
cnMoZmFsc2UpCi0gICAgLCBtX3JlY29tcGlsZVRpbWVyKHRoaXMsICZTY3JpcHREZWJ1Z1NlcnZl
cjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNUaW1lckZpcmVkKQogewogfQogCkBAIC0zMTMsMTYg
KzMxMiw2IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmhhbmRsZVBhdXNlKERlYnVnZ2VyOjpS
ZWFzb25Gb3JQYXVzZSwgSlNHbG9iYWxPYmplY3QqIHZtCiAgICAgZGlzcGF0Y2hGdW5jdGlvblRv
TGlzdGVuZXJzKCZTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRDb250aW51ZSwgdm1FbnRy
eUdsb2JhbE9iamVjdCk7CiB9CiAKLXZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zU29vbigpCi17Ci0gICAgbV9yZWNvbXBpbGVUaW1lci5zdGFydE9uZVNob3Qo
MCk7Ci19Ci0KLXZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
VGltZXJGaXJlZChUaW1lcjxTY3JpcHREZWJ1Z1NlcnZlcj4mKQotewotICAgIHJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zKCk7Ci19Ci0KIGNvbnN0IFZlY3RvcjxTY3JpcHRCcmVha3BvaW50QWN0aW9u
PiYgU2NyaXB0RGVidWdTZXJ2ZXI6OmdldEFjdGlvbnNGb3JCcmVha3BvaW50KEpTQzo6QnJlYWtw
b2ludElEIGJyZWFrcG9pbnRJRCkKIHsKICAgICBBU1NFUlQoYnJlYWtwb2ludElEICE9IEpTQzo6
bm9CcmVha3BvaW50SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERl
YnVnU2VydmVyLmgKaW5kZXggZmEwZWU1ZC4uOTM1NDBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0zNCw3ICszNCw2IEBACiAKICNp
bmNsdWRlICJTY3JpcHRCcmVha3BvaW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdMaXN0ZW5l
ci5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0T2JqZWN0
Lmg+CiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgpAQCAtNTksNyArNTgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50
KEpTQzo6QnJlYWtwb2ludElEKTsKICAgICB2b2lkIGNsZWFyQnJlYWtwb2ludHMoKTsKIAotICAg
IHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7CiAgICAgdmlydHVhbCB2b2lkIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zKCkgPSAwOwogCiAgICAgY29uc3QgVmVjdG9yPFNjcmlwdEJy
ZWFrcG9pbnRBY3Rpb24+JiBnZXRBY3Rpb25zRm9yQnJlYWtwb2ludChKU0M6OkJyZWFrcG9pbnRJ
RCk7CkBAIC0xMDksMTIgKzEwNyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZVBhdXNlKEpTQzo6RGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeURvbmVQcm9jZXNzaW5n
RGVidWdnZXJFdmVudHMoKSBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZvaWQgcmVjb21waWxlQWxs
SlNGdW5jdGlvbnNUaW1lckZpcmVkKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiYpOwotCiAgICAg
dW5zaWduZWQgbV9oaXRDb3VudDsKICAgICBib29sIG1fY2FsbGluZ0xpc3RlbmVyczsKICAgICBC
cmVha3BvaW50SURUb0FjdGlvbnNNYXAgbV9icmVha3BvaW50SURUb0FjdGlvbnM7Ci0gICAgVGlt
ZXI8U2NyaXB0RGVidWdTZXJ2ZXI+IG1fcmVjb21waWxlVGltZXI7CiAKICAgICBmcmllbmQgY2xh
c3MgRGVidWdnZXJDYWxsRnJhbWVTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggYmVjOWU1Ny4u
ZWQzMWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNTUsMjIgKzU1LDEzIEBAIHZvaWQgV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVy
KQogICAgIGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2xpc3Rl
bmVycy5pc0VtcHR5KCkpCi0gICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUtPnNjcmlwdCgpLT5h
dHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICBib29sIHdhc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNF
bXB0eSgpOwogICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7Ci0gICAgcmVjb21waWxlQWxs
SlNGdW5jdGlvbnMoKTsKLX0KIAotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21w
aWxlQWxsSlNGdW5jdGlvbnMoKQotewotICAgIEpTQzo6Vk0qIHZtID0gbV93b3JrZXJHbG9iYWxT
Y29wZS0+c2NyaXB0KCktPnZtKCk7Ci0KLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsK
LSAgICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5vdCBlbXB0eSBwb3N0cG9uZSByZWNvbXBp
bGF0aW9uLgotICAgIGlmICh2bS0+ZW50cnlTY29wZSkKLSAgICAgICAgcmVjb21waWxlQWxsSlNG
dW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAgICBKU0M6OkRlYnVnZ2VyOjpyZWNvbXBp
bGVBbGxKU0Z1bmN0aW9ucyh2bSk7CisgICAgaWYgKHdhc0VtcHR5KSB7CisgICAgICAgIG1fd29y
a2VyR2xvYmFsU2NvcGUtPnNjcmlwdCgpLT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICAgICAg
cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKKyAgICB9CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVy
KQpAQCAtNzksOCArNzAsMTkgQEAgdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3Zl
TGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsK
IAogICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7Ci0gICAgaWYgKG1fbGlzdGVuZXJz
LmlzRW1wdHkoKSkKKworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpIHsKICAgICAgICAg
bV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERlYnVnZ2VyKHRoaXMpOworICAg
ICAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOworICAgIH0KK30KKwordm9pZCBXb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQoreworICAgIEpTQzo6
Vk0qIHZtID0gbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPnZtKCk7CisKKyAgICBKU0M6
OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAgICBKU0M6OkRlYnVnZ2VyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucyh2bSk7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2
ZW50TG9vcFdoaWxlUGF1c2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAppbmRleCAxZjI1YTNlLi5iNjhkZmJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJl
Y29tcGlsZVNjcmlwdCgpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOworICAgICAgICBQ
YWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZmlsaW5nKGNvbnN0IFN0cmluZyYg
dGl0bGUpIG92ZXJyaWRlCg==
</data>
<flag name="review"
          id="245803"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="245804"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221927</attachid>
            <date>2014-01-22 17:45:32 -0800</date>
            <delta_ts>2014-01-22 17:59:02 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix - Passing Tests</desc>
            <filename>updated-rm-timer.patch</filename>
            <type>text/plain</type>
            <size>118863</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC1leHBlY3RlZC50eHQK
aW5kZXggNjQ2ZTM5MC4uYTczMWIyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
YWN0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBDbG9zaW5nIHRoZSBp
bnNwZWN0b3Igd2hpbGUgZXhlY3V0aW5nIHRoZSBjb2RlIGZvciBhIGJyZWFrcG9pbnQgYWN0aW9u
IHNob3VsZCBjb250aW51ZSBleGVjdXRpbmcgY29kZS4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAog
Rm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEp
IGI6KDIpIGErYjooMykKIENsb3NpbmcgdGhlIGluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRh
Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3Bv
aW50LWFjdGlvbi1kZXRhY2guaHRtbAppbmRleCA5NTEwMjExLi5iYWM4Zjg3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rp
b24tZGV0YWNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1sCkBAIC01MCw5ICs1MCw2IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsK
IH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3Bv
aW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNTdkMjk2My4uYmQ0
MTBmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNiBAQAogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ3RoaXMud2lsbC5jYXVzZScpCiBUaGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiBl
eGNlcHRpb25zIHRocm93biB3aGlsZSBleGVjdXRpbmcgdGhlIGJyZWFrcG9pbnQgYWN0aW9ucy4K
IAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRlIGJyZWFr
cG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKIFBBU1M6IEJyZWFrcG9pbnQg
YWN0aW9uIGV4ZWN1dGVkLCBidXQgdGhlIGV4Y2VwdGlvbiBkaWQgbm90IGNhdXNlIHRoZSBkZWJ1
Z2dlciB0byBwYXVzZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgt
ZXhjZXB0aW9uLmh0bWwKaW5kZXggZGU2Yzg0Yy4uM2I5NDczYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgt
ZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwKQEAgLTQ3LDEwICs0Nyw2
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvciht
ZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVu
YWJsZWQiKTsKLSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9u
LWRldGFjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLWV4cGVjdGVkLnR4dAppbmRleCBiYWU4
NzcyLi43ODg2ZDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRp
b24tZGV0YWNoLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFr
cG9pbnQgd2l0aCBhbiBhY3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uIHNob3VsZCBub3Qg
cGF1c2UgdGhlIGRlYnVnZ2VyLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3Bv
aW50LmpzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjooMikgYStiOigz
KQogQ2xvc2luZyB0aGUgaW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0
aW9uLWRldGFjaC5odG1sCmluZGV4IDM1MjBiNDkuLjYxN2VkNjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1k
ZXRhY2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKQEAgLTUwLDEwICs1MCw2IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2Jq
ZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhj
ZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5k
ZXggOTU1YWEwNS4uNWIxZTI1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
NiBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMud2lsbC5jYXVzZScpCiBUaGUgZGVidWdnZXIg
c2hvdWxkIG5vdCBwYXVzZSBvbiBleGNlcHRpb25zIHRocm93biB3aGlsZSBleGVjdXRpbmcgdGhl
IGJyZWFrcG9pbnQgY29uZGl0aW9ucy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJl
YWtwb2ludC5qcwogaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGEr
YjooMykKIFBBU1M6IFRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIHRoZSBleGNlcHRp
b24gaW5zaWRlIHRoZSBjb25kaXRpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IDg3OGQ2NTQuLmMxZmMyMTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3Bv
aW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlv
bi5odG1sCkBAIC00NiwxMCArNDYsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9CiAKICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7
YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4KIDwv
aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2Vw
dGlvbi1leHBlY3RlZC50eHQKaW5kZXggMDFiODRkOC4uZTcwMTJhMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRo
LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw1IEBACiBXaGlsZSBiZWluZyBwYXVzZWQgb24gYSBicmVha3BvaW50IHRoZSBk
ZWJ1Z2dlciBzaG91bGQgaWdub3JlIHRoZSBleGNlcHRpb25zIGZyb20gY29uc29sZSBjb21tYW5k
cy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRlIGJy
ZWFrcG9pbnRCYXNpYwogUEFTUzogUGF1c2VkIGluIGRlYnVnZ2VyOiByZWFzb24gPSAib3RoZXIi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwKaW5k
ZXggZTJiY2U1Mi4uOTZhMzAyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwt
d2l0aC1leGNlcHRpb24uaHRtbApAQCAtNTYsMTAgKzU2LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwg
e30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9p
bnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogfQog
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGNi
NWFmNWUuLmEzMzQ4NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDYg
KzEsNSBAQAogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBFeGVjdXRpbmcgY29uZGl0aW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0
bWwKaW5kZXggNmMxY2M1OS4uYTJlNThhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0
aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbApAQCAtNjAsMTAgKzYw
LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMg
RW5hYmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlv
bi1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUtZXhwZWN0ZWQudHh0CmluZGV4IDEwZTJhZmMu
LjBhNWY2ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBs
aW5lOmNvbHVtbiBpbiA8c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2Ny
aXB0PgogUnVubmluZyB0ZXN0RnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rp
b24tbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Nh
bGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCmluZGV4IDZkOTFmOTAuLmY2NTY5ZGEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1l
LWZ1bmN0aW9uLW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFtZSBmdW5jdGlvbk5hbWVzIGFyZSB3aGF0
IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVu
YWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRC
cmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAg
IEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtaG9zdC1leHBlY3RlZC50eHQKaW5kZXggZjQxMmU1MC4uMGI5NGM3NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1o
b3N0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAog
RGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8c2NyaXB0PgogCi1CcmVh
a3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmluZyB0ZXN0RnVuY3Rpb24KIEhp
dCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbAppbmRleCA4OGI5
MmZiLi5mMDZlMTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbApAQCAtMTIs
OSArMTIsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBjYWxsIGZyYW1lIHRoaXMgdmFsdWVz
IGFyZSB3aGF0IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1
Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9
KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJz
ZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJp
Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CmluZGV4IGMxZGIwMDMuLjkx
NGQwMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC1l
eHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxp
bmU6Y29sdW1uIGluIDxzY3JpcHQ+CiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIDxzY3Jp
cHQ+CiBSdW5uaW5nIHRlc3RGdW5jdGlvbgogUEFTUzogc3RlcCAwOiB0eXBlICJvYmplY3QiIGNs
YXNzTmFtZSAiTnVtYmVyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0
bWwKaW5kZXggYWM1NjQ0NC4uNTA3ODkwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlz
LW5vbnN0cmljdC5odG1sCkBAIC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8v
IGNhbGwgZnJhbWUgdGhpcyB2YWx1ZXMgYXJlIHdoYXQgd2UgZXhwZWN0LgogCiAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2
ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRs
ZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAg
ICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
Y2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBlY3RlZC50eHQK
aW5kZXggYTk2ODNmNC4uN2M3YjJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtc3RyaWN0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFr
cG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAog
Rm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9uCiBQQVNTOiBzdGVwIDA6IHR5cGUg
Im51bWJlciIgdmFsdWUgIjIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbApp
bmRleCAyOGI4YzBmLi5hNWVmOGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0
Lmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFt
ZSB0aGlzIHZhbHVlcyBhcmUgd2hhdCB3ZSBleHBlY3QuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwg
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFi
bGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdn
ZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQ
cm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3Rl
ZC50eHQKaW5kZXggMzcxMzcwNS4uZDhiNWJhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1
IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggbXVsdGlwbGUgcHJvYmUgYWN0aW9ucyBh
dCB0aGUgc2FtZSBicmVha3BvaW50LiBUZXN0IERlYnVnZ2VyLmRpZFNhbXBsZVByb2JlIGV2ZW50
cyBmb3IgdGhlIHByb2JlIHNhbXBsZXMuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJy
ZWFrcG9pbnQuanMKIFBBU1M6IFNob3VsZCByZWNlaXZlIHR3byBicmVha3BvaW50IGFjdGlvbiBp
ZGVudGlmaWVycyBvbiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IGNhbGxiYWNrLgogUnVubmluZyBi
cmVha3BvaW50QWN0aW9ucyB0byB0cmlnZ2VyIHByb2JlIHNhbXBsZXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVs
dGlwbGUtcHJvYmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKaW5kZXggY2YwZTNmNS4uMTY4
MDZhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMu
aHRtbApAQCAtOCw5ICs4LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yVGVzdC5p
bXBvcnRTY3JpcHQoIi4uLy4uLy4uLy4uL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJv
YmUtaGVscGVyLmpzIik7CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
c2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAK
ICAgICB2YXIgc2FtcGxlcyA9IFtdOwogICAgIGNvbnN0IGV4cGVjdGVkU2FtcGxlQ291bnQgPSAy
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL25l
c3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQKaW5kZXggZjc5MDM1
OS4uNjJjMmRmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsNiBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEVycm9yOiBQQVNTOiBF
eHBlY3RlZCBleGNlcHRpb24KIENoZWNraW5nIHRoYXQgdGhlIGluc3BlY3RvciBjb2RlIGNhbiBi
ZSBkZWJ1Z2dlZCB1c2luZyBhIHNlY29uZCBpbnNwZWN0b3Igd2luZG93LgogCi1CcmVha3BvaW50
cyBFbmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFsbAogUEFTUzogUGF1
c2VkIQogUEFTUzogUmVzdW1lZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwKaW5kZXggYjZi
YjczZC4uZjQ1YzAyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwKQEAgLTksMTUgKzks
MTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gcnVucyBpbiB0
aGUgc2Vjb25kIGluc3BlY3RvciB3aW5kb3cuIFdlIGNhbiB1c2UgdGhpcyBvbmUgdG8gZGVidWcg
dGhlIGZpcnN0IGluc3BlY3Rvci4KIAogICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJs
ZWQiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2Jq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3Bv
bnNlT2JqZWN0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwg
ZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKIAotICAgICAgICAgICAg
ICAgIC8vIFRyaWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4KLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwg
e2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ1BB
U1M6IEV4cGVjdGVkIGV4Y2VwdGlvbicpIH0sIDApOyJ9KTsKLSAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgLy8gVHJpZ2dlciBhbiBleGNlcHRpb24gaW4gdGhlIG1haW4gaW5zcGVjdG9yLgor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdQ
QVNTOiBFeHBlY3RlZCBleGNlcHRpb24nKSB9LCAwKTsifSk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50
eHQKaW5kZXggMWZhYjQzZC4uZDkwNjA1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnJlbW92ZUJyZWFrcG9pbnQK
IAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogU2V0IEJyZWFrcG9p
bnQsIFRyaWdnZXJpbmcgaXQKIGluc2lkZSBicmVha3BvaW50QmFzaWMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtw
b2ludC5odG1sCmluZGV4IGU0MjAwYTkuLjI1NTYxMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQu
aHRtbApAQCAtNiw5ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRy
dWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRz
IEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIHZhciBicmVha3BvaW50VHJpZ2dlcmVkID0gMDsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRl
eCA4MjFjNjJkLi44MjQyMWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rp
b25zLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6
IGV2YWwtYWN0aW9uCiBDT05TT0xFIE1FU1NBR0U6IGxvZy1hY3Rpb24tYWZ0ZXIKIERlYnVnZ2Vy
LnNldEJyZWFrcG9pbnQgb3B0aW9ucy5hY3Rpb25zCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZv
dW5kIGJyZWFrcG9pbnQuanMKIFJ1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgYSBmZXcgdGltZXMg
dGhhdCBzaG91bGQgbm90IHRyaWdnZXIKIGluc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOigxKSBi
Oih1bmRlZmluZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwKaW5kZXggMTFi
NjlhYS4uYjQ2YWYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbApAQCAt
MTAsOSArMTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkNvbnNvbGUuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBpc0V4cGVjdGluZ0xvZ3MgPSBmYWxzZTsKICAgICB2YXIgaXNF
eHBlY3RpbmdTYW1wbGVzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dAppbmRleCA4YzYyMjBmLi42YzZhNGQ1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50
eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9wdGlvbnMuYXV0b0Nv
bnRpbnVlCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIFJ1bm5p
bmcgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZSBtdWx0aXBsZSB0aW1lcyB3aXRoIGF1
dG9tYXRpY2FsbHkgY29udGludWUKIGluc2lkZSBicmVha3BvaW50QXV0b21hdGljYWxseUNvbnRp
bnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
c2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sCmluZGV4IDY0
YjgzNDUuLmQ0NGFjM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS5odG1sCkBAIC02LDkgKzYsNiBAQAogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTog
dHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2lu
dHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIGFsbG93ZWRUb0hpdEJyZWFrcG9pbnQg
PSBmYWxzZTsKICAgICB2YXIgYnJlYWtwb2ludElkZW50aWZpZXIgPSBudWxsOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1leHBlY3RlZC50eHQKaW5kZXggYTdiMmRhZC4uNDg1
NDU0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0
CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBp
biA8c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmlu
ZyB0ZXN0RnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1
bW4uaHRtbAppbmRleCA3M2VhOTRiLi44N2ZhY2Q0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gYnkg
cnVubmluZyBzb21lIGV4cHJlc3Npb25zIGF0IHRoYXQgY2FsbCBmcmFtZS4KIAogICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3Rp
dmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggOWQ3NzdkMC4uYTUyZTZiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0
QnJlYWtwb2ludCBvcHRpb25zLmNvbmRpdGlvbgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIG11bHRpcGxl
IHRpbWVzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjooMikgYStiOigz
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbAppbmRleCAxOTAzNTg3Li5l
NzY0ZTQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbApAQCAtNiw5
ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBpbkJyZWFrcG9pbnQgPSBmYWxzZTsKICAgICB2YXIgYnJlYWtw
b2ludFRyaWdnZXJlZCA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKaW5k
ZXggOWVhNDk5Ny4uOTQzZGJjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTowIGluIDxz
Y3JpcHQgc3JjPSIuLi4iPgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50
LmpzCiBQQVNTOiBSZWNlaXZlZCBlcnJvciBzZXR0aW5nIGR1cGxpY2F0ZSBicmVha3BvaW50OiBC
cmVha3BvaW50IGF0IHNwZWNpZmllZCBsb2NhdGlvbiBhbHJlYWR5IGV4aXN0cy4KIFJ1bm5pbmcg
YnJlYWtwb2ludEJhc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1v
cHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNmRlYmM3Yi4uYTk5N2Y0NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQtb3B0aW9ucy1leGNlcHRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5
cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMKIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQogRGVidWdnZXIuc2V0QnJlYWtwb2lu
dCBvcHRpb25zLmNvbmRpdGlvbiBvciBvcHRpb25zLmFjdGlvbiB3aXRoIGV4Y2VwdGlvbgogCi1C
cmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9p
bnRXaXRoQ29uZGl0aW9uIHRvIHRyaWdnZXIgY29uZGl0aW9uIGV4Y2VwdGlvbi4KIGluc2lkZSBi
cmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRp
b25zLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbAppbmRleCA1YzkzYzQxLi5i
MTViZGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0
aW9uLmh0bWwKQEAgLTksOSArOSw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiQ29uc29sZS5lbmFibGUiLCB7fSk7CiAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1
ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMg
RW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIGxvZ3NTZWVuID0gMDsKICAgICBjb25zdCBl
eHBlY3RlZExvZ3MgPSAyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwKaW5kZXggOTBmMDM1YS4uN2U3Njhi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC5odG1sCkBAIC02LDkgKzYsNiBAQAogZnVuY3Rpb24gdGVzdCgp
CiB7CiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgSW5zcGVjdG9y
VGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5
VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQKaW5kZXggYzUwZGQ3Mi4uOTBjMTE2YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCBpbiBTY3Jp
cHQgbmFtZWQgdmlhIHNvdXJjZVVSTAogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBzb3Vy
Y2VVUkwtdGVzdC5qcwogUnVubmluZyBzb3VyY2VVUkxGdW5jdGlvbgogSGl0IEJyZWFrcG9pbnQh
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAppbmRleCAx
MDFjMmQ4Li4xYTcxNmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291
cmNlVVJMLmh0bWwKQEAgLTksOSArOSw2IEBAIGV2YWwoImZ1bmN0aW9uIHNvdXJjZVVSTEZ1bmN0
aW9uKCkge1xuICAgIHZhciBhID0gMTtcbiAgICB2YXIgYiA9IDI7XG4gICAgdmFyIGMKIGZ1bmN0
aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVu
YWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRC
cmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAg
IEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VP
bkV4Y2VwdGlvbnMtYWxsLWV4cGVjdGVkLnR4dAppbmRleCBhOTlhMGQ3Li42OWY3YWJkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VP
bkV4Y2VwdGlvbnMtYWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLWV4cGVjdGVkLnR4dApA
QCAtMTMsNyArMTMsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFtvYmplY3QgT2JqZWN0
XQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBFcnJvcjogZXJyb3IgbWVzc2FnZQogRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgYWxsCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIERlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gYWxsCiBQQVNTIC0gZGlkIG5vdCBwYXVzZSBvbiBu
b24tZXhjZXB0aW9uIHN0YXRlbWVudHMKIFBhdXNlZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1hbGwuaHRtbAppbmRleCAzMTcxZGZiLi5iZWYzMzdmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMt
YWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCkBAIC0xMDIsMTUgKzEwMiwxMiBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5h
YmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJy
ZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0
ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFsbCIpOwotICAg
ICAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0cmlnZ2VyTmV4dCgp
OwotICAgICAgICAgICAgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgZnVuY3Rpb24ocmVzcG9u
c2VPYmplY3QpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNl
T2JqZWN0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIC0gYWxsIik7CisgICAgICAgIGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRy
aWdnZXJOZXh0KCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9u
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
c2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKaW5kZXggNTcxOGRjZC4uY2Rk
NDQzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLWV4
cGVjdGVkLnR4dApAQCAtMTIsNyArMTIsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFtv
YmplY3QgT2JqZWN0XQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBFcnJvcjogZXJyb3IgbWVz
c2FnZQogRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgbm9uZQogCi1CcmVha3BvaW50cyBF
bmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUKIFBBU1M6IE5vIHBh
dXNlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbAppbmRleCBi
YTg3MGYzLi42YzYwNzA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25l
Lmh0bWwKQEAgLTYsMzIgKzYsMjkgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6
IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9p
bnRzIEVuYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gbm9uZSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsgMSsxOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBub0V4Y2VwdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChub0V4Y2VwdGlvbiwgNyk7IH0sIDApOyJ9
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVh
dGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIu
Yy5kIH0gY2F0Y2ggKGUpIHsgY29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0
cmluZ2lmeShlKSk7IH0gfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uQmFzaWMsIDEpOyB9LCAwKTsifSk7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4
cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25E
T00sIDIpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RGdW5jdGlvbiwgMyk7IH0sIDApOyJ9KTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7
ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNoTmVzdGVkKHRocm93U3Ry
aW5nLCAxMCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IGNhdGNoTmVzdGVkKHRocm93UGFyYW0sIDUsIG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScp
KTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsge30u
YS5iLmMuZDsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgZXhjZXB0aW9uQmFzaWMoKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91
dChmdW5jdGlvbigpIHsgZXhjZXB0aW9uRE9NKCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0sIDAp
OyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93U3RyaW5n
KCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRo
cm93UGFyYW0oe3g6MX0pOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyB0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7
In0sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBObyBwYXVzZXMi
KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgICAgICAgICB9LCAxMCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogIm5v
bmUifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
aGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gbm9uZSIpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyAxKzE7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91
dChmdW5jdGlvbigpIHsgbm9FeGNlcHRpb24oKTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChub0V4Y2VwdGlvbiwgNyk7IH0sIDApOyJ9
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdHJ5eyAoe30pLmEuYi5jLmQg
fSBjYXRjaCAoZSkgeyBjb25zb2xlLmxvZygnY2F1Z2h0IGlubGluZTogJyArIEpTT04uc3RyaW5n
aWZ5KGUpKTsgfSB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGNhdGNoTmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsgfSwgMCk7In0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25ET00sIDIpOyB9LCAw
KTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVh
dGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNoTmVzdGVkKGV4
Y2VwdGlvbkluSG9zdEZ1bmN0aW9uLCAzKTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyB9LCAwKTsifSk7
CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7
ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNoTmVzdGVkKHRocm93UGFy
YW0sIDUsIG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0pOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246
ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB7fS5hLmIuYy5kOyB9LCAwKTsifSk7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lv
bjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkJhc2ljKCk7IH0sIDApOyJ9KTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtl
eHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgZXhjZXB0aW9uRE9NKCk7IH0sIDAp
OyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0
ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgZXhjZXB0aW9uSW5Ib3N0
RnVuY3Rpb24oKTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0aHJvd1N0cmluZygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7IHRocm93UGFyYW0oe3g6MX0pOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7IHRocm93UGFyYW0obmV3IEVycm9yKCdlcnJvciBtZXNzYWdlJykpOyB9
LCAwKTsifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBObyBwYXVzZXMiKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAg
ICAgfSwgMTApOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1
Z2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50eHQKaW5kZXggNmExNmI2
Ny4uODg5YmYyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlv
bnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0CkBAIC0xOSw3ICsxOSw2IEBAIENPTlNPTEUgTUVTU0FH
RTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogImV4Y2VwdGlvbiBzdHJp
bmciCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRp
b246IHsibGluZSI6MTgsImNvbHVtbiI6MTIsInNvdXJjZVVSTCI6ImV4Y2VwdGlvbi5qcyJ9CiBE
ZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyB1bmNhdWdodAogCi1CcmVha3BvaW50cyBFbmFi
bGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIHVuY2F1Z2h0CiBQQVNTIC0gZGlk
IG5vdCBwYXVzZSBvbiBub24tZXhjZXB0aW9uIHN0YXRlbWVudHMgb3IgY2F1Z2h0IGV4Y2VwdGlv
biBzdGF0ZW1lbnRzCiBQYXVzZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9u
cy11bmNhdWdodC5odG1sCmluZGV4IGJiYjdjMzMuLjI1ZTQwNjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11
bmNhdWdodC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sCkBAIC03OSwxNSArNzksMTIgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMi
LCB7c3RhdGU6ICJ1bmNhdWdodCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAt
IHVuY2F1Z2h0Iik7Ci0gICAgICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0UGF1c2UgPSB0cnVlOwotICAgICAgICAgICAg
ICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKTsKLSAgICAgICAgICAgIH0pOworICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25z
Iiwge3N0YXRlOiAidW5jYXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gdW5jYXVn
aHQiKTsKKyAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgZXhwZWN0UGF1c2UgPSB0cnVlOworICAgICAgICAgICAgdHJpZ2dlck5leHRVbmNh
dWdodEV4Y2VwdGlvbigpOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9u
b2RlLXJlbW92ZWQtZXhwZWN0ZWQudHh0CmluZGV4IGVjZWM1MGIuLjcwOWFiNjIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1v
dmVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9t
LWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBUZXN0
aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92ZWQgaXMgY29ycmVjdGx5IHRyaWdnZXJlZCBldmVu
IHdoZW4gdGhlIGVsZW1lbnQgaXMgbW92ZWQgd2hpbGUgcGF1c2VkIGluIHRoZSBkZWJ1Z2dlciBv
biBhIERPTURlYnVnZ2VyICJub2RlLXJlbW92ZWQiIGJyZWFrcG9pbnQuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIDxzY3JpcHQ+CiBTdG9wcGVkIG9uIERPTSBicmVha3BvaW50CiBQQVNT
OiBvbkNoaWxkTm9kZVJlbW92ZWQgY2FsbGVkIGZvciAjdGFyZ2V0X2VsZW1lbnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1v
dmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25v
ZGUtcmVtb3ZlZC5odG1sCmluZGV4IDI1MDRlNDUuLmI2NjE2ZTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJl
bW92ZWQuaHRtbApAQCAtMTE4LDEzICsxMTgsMTAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTURlYnVnZ2VyLnNldERPTUJyZWFrcG9pbnQi
LCB7bm9kZUlkOiB0YXJnZXRFbGVtZW50SWQsIHR5cGU6ICJub2RlLXJlbW92ZWQifSk7CiAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5yZXF1ZXN0Q2hpbGROb2RlcyIsIHtu
b2RlSWQ6IGZpbmFsQ29udGFpbmVySWR9KTsKIAotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogInJlbW92ZU5vZGUoKSJ9
KTsgICAgICAgIAorICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwgeyJleHByZXNzaW9uIjogInJlbW92ZU5vZGUoKSJ9KTsKICAgICB9CiAKICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7
YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJC
cmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNhMmRkOTYuLmIxMWZhNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudEJhc2UuaDoKKyAgICAgICAgV2hlbiBkaXNjb25uZWN0aW5nIGFnZW50cywgcHJv
dmlkZSBhIEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gZm9yCisgICAgICAgIHRoZSBkaXNjb25u
ZWN0aW9uLiBJdCBjb3VsZCBiZSB0aGF0IGFuIGluc3BlY3RvciBmcm9udGVuZCBpcyBqdXN0Cisg
ICAgICAgIGRpc2Nvbm5lY3Rpbmcgb3IgdGhhdCB0aGUgaW5zcGVjdGVkIG9iamVjdCBpcyBnb2lu
ZyBhd2F5IGVudGlyZWx5CisgICAgICAgIGFuZCB3ZSBjYW4gYXZvaWQgZG9pbmcgc29tZSB3b3Jr
LgorCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHA6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6fkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZSk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6ZGlzY29ubmVjdCk6CisgICAg
ICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6ZGlzY29ubmVjdEludGVybmFsKToK
KyAgICAgICAgUGFzcyBkaWZmZXJlbnQgcmVhc29ucyBmb3IgdGhlIGRpZmZlcmVudCBkaXNjb25u
ZWN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnRSZWdpc3RyeTo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJl
Z2lzdHJ5Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICBQYXNzIEluc3BlY3RvckRpc2Nvbm5l
Y3RSZWFzb24gYXJvdW5kIHdoZXJlIG5lZWRlZC4KKwogMjAxNC0wMS0yMSAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ2lzdGVycyB1c2VkIGlu
IHdyaXRlQmFycmllck9uT3BlcmFuZCBjYW4gY2F1c2UgY2xvYmJlcmluZyBvbiBzb21lIHBsYXRm
b3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBZ2VudEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnRCYXNlLmgKaW5kZXggMjBhZDcxZi4uM2M1NjlkNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oCkBAIC0zNCwxMiAr
MzQsMTcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbDsKIAorZW51bSBjbGFzcyBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHsKKyAgICBJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ry
b3llZCwKKyAgICBGcm9udGVuZERpc2Nvbm5lY3RlZAorfTsKKwogY2xhc3MgSW5zcGVjdG9yQWdl
bnRCYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBZ2VudEJhc2UoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNjYXJkQWdlbnQoKSB7
IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKaW5kZXggMjAzYzhmNi4uZTBkOWVk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JB
Z2VudFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCkBAIC00OCwxMCArNDgsMTAgQEAgdm9pZCBJbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmUKICAgICAgICAgbV9hZ2VudHNbaV0tPmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChmcm9udGVuZENoYW5uZWwsIGJhY2tlbmREaXNwYXRjaGVyKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JBZ2VudFJlZ2lzdHJ5Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lk
IEluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9hZ2VudHMuc2l6ZSgpOyBpKyspCi0gICAgICAgIG1fYWdlbnRzW2ldLT53aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworICAgICAgICBtX2FnZW50c1tpXS0+d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBZ2VudFJl
Z2lzdHJ5OjpkaXNjYXJkQWdlbnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgKaW5kZXggMmU4OTAzOS4uMTdk
NjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiBjbGFzcyBJbnNwZWN0b3JBZ2VudEJhc2U7CiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbDsKK2VudW0gY2xhc3Mg
SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5z
cGVjdG9yQWdlbnRSZWdpc3RyeSB7CiBwdWJsaWM6CkBAIC00Miw3ICs0Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yQWdlbnRCYXNlPik7CiAK
ICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKTsKICAgICB2b2lkIGRpc2Nh
cmRBZ2VudHMoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCA3NDYyYWFkLi5kN2I0NmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCkBAIC02OCwxMiArNjgsMTIgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwKICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoZnJvbnRlbmRD
aGFubmVsLCBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKIH0KIAotdm9pZCBK
U0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCit2
b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5k
KEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGlmICghbV9pbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fYWdlbnRzLndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXItPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBmZjQxYjU5
Li5jNGZiZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogICAgIH5KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgdm9pZCBkaXNjb25uZWN0
RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOwogICAgIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBi
b29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggNjliYTVlYi4uZmNlZTQ2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFn
ZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBmcm9udAogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6
Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikK
IHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKaW5kZXggOTQzZWYxNi4uYzdkYzliYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3Bw
CmluZGV4IGM5MzNhYTYuLjcwZDNhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiQVBJU2hp
bXMuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudEJhc2UuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1
ZGUgIlJlbW90ZUluc3BlY3Rvci5oIgpAQCAtNDUsNyArNDYsNyBAQCBKU0dsb2JhbE9iamVjdERl
YnVnZ2FibGU6OkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZShKU0dsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjp+SlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlKCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBkaXNjb25u
ZWN0KCk7CisgICAgICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ryb3llZCk7CiB9CiAKIFN0cmluZyBKU0dsb2Jh
bE9iamVjdERlYnVnZ2FibGU6Om5hbWUoKSBjb25zdApAQCAtNjUsOSArNjYsMTQgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiBmcm9udGVuZENoYW5uZWwKIAogdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nv
bm5lY3QoKQogeworICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3REZWJ1
Z2dhYmxlOjpkaXNjb25uZWN0SW50ZXJuYWwoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFz
b24pCit7CiAgICAgQVBJRW50cnlTaGltIGVudHJ5U2hpbSgmbV9nbG9iYWxPYmplY3Qudm0oKSk7
CiAKLSAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAg
IG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlzY29ubmVjdEZyb250ZW5kKHJlYXNvbik7CiAgICAg
bV9pbnNwZWN0b3JDb250cm9sbGVyID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaAppbmRl
eCBhYWZmMTk5Li5jZjNlZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaApAQCAtMzIsNiArMzIsMTAgQEAK
ICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBJbnNwZWN0b3IgeworZW51bSBjbGFzcyBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uOworfQorCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNHbG9i
YWxPYmplY3Q7CkBAIC01Miw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZUZyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9pZCBkaXNjb25uZWN0SW50ZXJuYWwoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbik7CisKICAgICBKU0dsb2JhbE9iamVj
dCYgbV9nbG9iYWxPYmplY3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6SlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyPiBtX2luc3BlY3RvckNvbnRyb2xsZXI7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDIwNWQ5ZTYuLjlmYTNkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNDMg
QEAKIDIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGlt
ZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRE
ZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6U2Ny
aXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICBSZW1vdmUgbV9yZWNvbXBpbGVUaW1lciBhbmQgdGhl
IHJlY29tcGlsZSBzb29uIGZ1bmN0aW9uLgorICAgICAgICBXZSBjYW4ganVzdCByZWNvbXBpbGUg
aW1tZWRpYXRlbHkgaW4gYWxsIGV4aXN0aW5nIGNhc2VzLgorCisgICAgICAgICogYmluZGluZ3Mv
anMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvUGFnZVNj
cmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VT
Y3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcik6CisgICAgICAg
IEFkZCBhICJkaWRBZGRGaXJzdExpc3RlbmVyIiB0byBtYXRjaCAiZGlkUmVtb3ZlTGFzdExpc3Rl
bmVyIi4KKyAgICAgICAgT25seSByZWNvbXBpbGUgZnVuY3Rpb25zIHdoZW4gd2UgYXR0YWNoIHRo
ZSBkZWJ1Z2dlciBhbmQgd2hlbgorICAgICAgICB3ZSBkZXRhY2ggdGhlIGxhc3QgbGlzdGVuZXIu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIFNhbWUgdGhpbmcuIEFsc28gcmVhcnJhbmdlIHRoZSBm
dW5jdGlvbnMgdG8gcmVhZCBiZXR0ZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIFVzZSB0aGUgZGlyZWN0IHJlY29tcGlsZSBmdW5j
dGlvbiBpbnN0ZWFkIG9mIHRoZSByZW1vdmVkICJzb29uIiB2ZXJzaW9uLgorCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgIFVwZGF0ZSBkaXNjb25uZWN0RnJvbnRlbmQgc3ltYm9s
LgorCisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9y
RnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZGlzY29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZUluc3BlY3Rv
clRhc2spOgorICAgICAgICBJbmNsdWRlIGFuIEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gd2hl
biBjYWxsaW5nIGRpc2Nvbm5lY3RGcm9udGVuZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIElmIHRoZSBkaXNjb25uZWN0IHJl
YXNvbiBpcyB0aGUgcGFnZSB3aWxsIGJlIGRlc3Ryb3llZCwgZG9uJ3QgcmVjb21waWxlIHdoZW4g
ZGlzY29ubmVjdGluZy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICBJZiB0aGUgZGlzY29ubmVjdCByZWFzb24gaXMgdGhlIHBhZ2Ugd2ls
bCBiZSBkZXN0cm95ZWQsIGRvbid0IHJlY29tcGlsZSB3aGVuIGRpc2Nvbm5lY3RpbmcuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKToKKyAgICAgICAgUGFzcyBkaWZmZXJlbnQg
cmVhc29ucyBmb3IgdGhlIGRpZmZlcmVudCBkaXNjb25uZWN0IHJlYXNvbnMuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9u
dGVuZCk6CisgICAgICAgIFBhc3MgZGlmZmVyZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQg
ZGlzY29ubmVjdCByZWFzb25zLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFi
YXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvcklucHV0QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5w
dXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckxheWVyVHJl
ZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck1lbW9yeUFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvck1lbW9yeUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIpOgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvUGFnZVJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckRlYnVnZ2VyQWdlbnQ6OnN0b3BM
aXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckRl
YnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
aDoKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHBhcmFtLgorCisy
MDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAg
ICAgVW5yZXZpZXdlZCByb2xsb3V0IG9mIHIxNjI1MzQsIHRoaXMgY2F1c2VkIGluc3BlY3RvciB0
ZXN0IGZhaWx1cmVzLgogCiAgICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGJhNjM4ZS4uNDhlMGUxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTI3NjMsNyArMjc2Myw3IEBAIF9fWk43V2ViQ29yZTE2SFRNTElu
cHV0RWxlbWVudDI1c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlckVSS05TXzVDb2xvckUKIF9fWk43
V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MzFkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdl
RVBOU180UGFnZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE3SW5zcGVjdG9yQ291bnRl
cnMxMmNvdW50ZXJWYWx1ZUVOUzBfMTFDb3VudGVyVHlwZUUKIF9fWk43V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjE1Y29ubmVjdEZyb250ZW5kRVBOOUluc3BlY3RvcjI0SW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsRQotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMThkaXNjb25u
ZWN0RnJvbnRlbmRFdgorX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMThkaXNjb25u
ZWN0RnJvbnRlbmRFTjlJbnNwZWN0b3IyNUluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb25FCiBfX1pO
N1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxOHNldFByb2ZpbGVyRW5hYmxlZEViCiBfX1pO
N1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIyNWV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmRF
bFJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMjZzZXRJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVOU3QzX18xMTB1bmlxdWVfcHRySU5TXzIzSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVFRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXgg
MWNlYzdiMy4uODQwNjc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC05NCwxMyArOTQsMTUgQEAgdm9pZCBQYWdl
U2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3Rl
bmVyLCBQYWdlKiBwYWcKICAgICBPd25QdHI8TGlzdGVuZXJTZXQ+JiBsaXN0ZW5lcnMgPSBtX3Bh
Z2VMaXN0ZW5lcnNNYXAuYWRkKHBhZ2UsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBp
ZiAoIWxpc3RlbmVycykKICAgICAgICAgbGlzdGVuZXJzID0gYWRvcHRQdHIobmV3IExpc3RlbmVy
U2V0KTsKKworICAgIGJvb2wgd2FzRW1wdHkgPSBsaXN0ZW5lcnMtPmlzRW1wdHkoKTsKICAgICBs
aXN0ZW5lcnMtPmFkZChsaXN0ZW5lcik7CiAKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nv
b24oKTsKLSAgICBwYWdlLT5zZXREZWJ1Z2dlcih0aGlzKTsKKyAgICBpZiAod2FzRW1wdHkpCisg
ICAgICAgIGRpZEFkZEZpcnN0TGlzdGVuZXIocGFnZSk7CiB9CiAKLXZvaWQgUGFnZVNjcmlwdERl
YnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwg
UGFnZSogcGFnZSkKK3ZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihT
Y3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSogcGFnZSwgYm9vbCBza2lwUmVjb21w
aWxlKQogewogICAgIEFTU0VSVF9BUkcobGlzdGVuZXIsIGxpc3RlbmVyKTsKICAgICBBU1NFUlRf
QVJHKHBhZ2UsIHBhZ2UpOwpAQCAtMTExLDIwICsxMTMsMTcgQEAgdm9pZCBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQ
YWdlKgogCiAgICAgTGlzdGVuZXJTZXQqIGxpc3RlbmVycyA9IGl0LT52YWx1ZS5nZXQoKTsKICAg
ICBsaXN0ZW5lcnMtPnJlbW92ZShsaXN0ZW5lcik7CisKICAgICBpZiAobGlzdGVuZXJzLT5pc0Vt
cHR5KCkpIHsKICAgICAgICAgbV9wYWdlTGlzdGVuZXJzTWFwLnJlbW92ZShpdCk7Ci0gICAgICAg
IGRpZFJlbW92ZUxhc3RMaXN0ZW5lcihwYWdlKTsKKyAgICAgICAgZGlkUmVtb3ZlTGFzdExpc3Rl
bmVyKHBhZ2UsIHNraXBSZWNvbXBpbGUpOwogICAgIH0KIH0KIAogdm9pZCBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCkKIHsKICAgICBKU0xvY2tIb2xkZXIg
bG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgLy8gSWYgSmF2YVNjcmlwdCBzdGFj
ayBpcyBub3QgZW1wdHkgcG9zdHBvbmUgcmVjb21waWxhdGlvbi4KLSAgICBpZiAoSlNET01XaW5k
b3c6OmNvbW1vblZNKCktPmVudHJ5U2NvcGUpCi0gICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zU29vbigpOwotICAgIGVsc2UKLSAgICAgICAgRGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKKyAgICBEZWJ1Z2dlcjo6cmVjb21waWxl
QWxsSlNGdW5jdGlvbnMoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwogfQogCiBTY3JpcHREZWJ1
Z1NlcnZlcjo6TGlzdGVuZXJTZXQqIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6Z2V0TGlzdGVuZXJz
Rm9yR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC0xNjEsMTUg
KzE2MCwyNSBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQ29udGludWUoSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICBzZXRKYXZhU2NyaXB0UGF1c2Vk
KHBhZ2UtPmdyb3VwKCksIGZhbHNlKTsKIH0KIAotdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6
OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKiBwYWdlKQordm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OmRpZEFkZEZpcnN0TGlzdGVuZXIoUGFnZSogcGFnZSkKK3sKKyAgICAvLyBTZXQgZGVi
dWdnZXIgYmVmb3JlIHJlY29tcGlsaW5nIHRvIGdldCBzb3VyY2VQYXJzZWQgY2FsbGJhY2tzLgor
ICAgIHBhZ2UtPnNldERlYnVnZ2VyKHRoaXMpOworICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
KCk7Cit9CisKK3ZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVu
ZXIoUGFnZSogcGFnZSwgYm9vbCBza2lwUmVjb21waWxlKQogewogICAgIEFTU0VSVChwYWdlKTsK
IAogICAgIGlmIChtX3BhdXNlZFBhZ2UgPT0gcGFnZSkKICAgICAgICAgbV9kb25lUHJvY2Vzc2lu
Z0RlYnVnZ2VyRXZlbnRzID0gdHJ1ZTsKIAotICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29v
bigpOwotICAgIHBhZ2UtPnNldERlYnVnZ2VyKDApOworICAgIC8vIENsZWFyIGRlYnVnZ2VyIGJl
Zm9yZSByZWNvbXBpbGluZyBiZWNhdXNlIHdlIGRvIG5vdCBuZWVkIHNvdXJjZVBhcnNlZCBjYWxs
YmFja3MuCisgICAgcGFnZS0+c2V0RGVidWdnZXIobnVsbHB0cik7CisKKyAgICBpZiAoIXNraXBS
ZWNvbXBpbGUpCisgICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CiB9CiAKIHZvaWQg
UGFnZVNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4
IGVkN2YyNGUuLjU2N2VkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFnZVNjcmlwdERlYnVnU2VydmVyJiBzaGFyZWQoKTsKIAogICAgIHZvaWQgYWRkTGlz
dGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIFBhZ2UqKTsKLSAgICB2b2lkIHJlbW92ZUxpc3Rl
bmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBQYWdlKik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5l
cihTY3JpcHREZWJ1Z0xpc3RlbmVyKiwgUGFnZSosIGJvb2wgc2tpcFJlY29tcGlsZSk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBvdmVycmlkZTsKIApAQCAt
NjUsNyArNjUsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcFdo
aWxlUGF1c2VkKCk7CiAKLSAgICB2b2lkIGRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKik7Cisg
ICAgdm9pZCBkaWRBZGRGaXJzdExpc3RlbmVyKFBhZ2UqKTsKKyAgICB2b2lkIGRpZFJlbW92ZUxh
c3RMaXN0ZW5lcihQYWdlKiwgYm9vbCBza2lwUmVjb21waWxlKTsKIAogICAgIHZvaWQgc2V0SmF2
YVNjcmlwdFBhdXNlZChjb25zdCBQYWdlR3JvdXAmLCBib29sIHBhdXNlZCk7CiAgICAgdm9pZCBz
ZXRKYXZhU2NyaXB0UGF1c2VkKFBhZ2UqLCBib29sIHBhdXNlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggZGFjNTJhMi4uNDAz
ZGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2Vy
dmVyLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkphdmFTY3JpcHRDYWxsRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNvdW5kLmgiCisjaW5jbHVk
ZSAiVGltZXIuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg+CiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmg+CkBAIC01Nyw3ICs1OCw2IEBAIFNjcmlwdERlYnVnU2VydmVyOjpTY3JpcHREZWJ1
Z1NlcnZlcihib29sIGlzSW5Xb3JrZXJUaHJlYWQpCiAgICAgOiBEZWJ1Z2dlcihpc0luV29ya2Vy
VGhyZWFkKQogICAgICwgbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzKHRydWUpCiAgICAg
LCBtX2NhbGxpbmdMaXN0ZW5lcnMoZmFsc2UpCi0gICAgLCBtX3JlY29tcGlsZVRpbWVyKHRoaXMs
ICZTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNUaW1lckZpcmVkKQog
ewogfQogCkBAIC0zMTMsMTYgKzMxMyw2IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmhhbmRs
ZVBhdXNlKERlYnVnZ2VyOjpSZWFzb25Gb3JQYXVzZSwgSlNHbG9iYWxPYmplY3QqIHZtCiAgICAg
ZGlzcGF0Y2hGdW5jdGlvblRvTGlzdGVuZXJzKCZTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hE
aWRDb250aW51ZSwgdm1FbnRyeUdsb2JhbE9iamVjdCk7CiB9CiAKLXZvaWQgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpCi17Ci0gICAgbV9yZWNvbXBpbGVU
aW1lci5zdGFydE9uZVNob3QoMCk7Ci19Ci0KLXZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29t
cGlsZUFsbEpTRnVuY3Rpb25zVGltZXJGaXJlZChUaW1lcjxTY3JpcHREZWJ1Z1NlcnZlcj4mKQot
ewotICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7Ci19Ci0KIGNvbnN0IFZlY3RvcjxTY3Jp
cHRCcmVha3BvaW50QWN0aW9uPiYgU2NyaXB0RGVidWdTZXJ2ZXI6OmdldEFjdGlvbnNGb3JCcmVh
a3BvaW50KEpTQzo6QnJlYWtwb2ludElEIGJyZWFrcG9pbnRJRCkKIHsKICAgICBBU1NFUlQoYnJl
YWtwb2ludElEICE9IEpTQzo6bm9CcmVha3BvaW50SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggZmEwZWU1ZC4uOTM1NDBhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0z
NCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJTY3JpcHRCcmVha3BvaW50LmgiCiAjaW5jbHVkZSAi
U2NyaXB0RGVidWdMaXN0ZW5lci5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8Ymlu
ZGluZ3MvU2NyaXB0T2JqZWN0Lmg+CiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXIuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTksNyArNTgsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZW1vdmVCcmVha3BvaW50KEpTQzo6QnJlYWtwb2ludElEKTsKICAgICB2b2lkIGNsZWFyQnJl
YWtwb2ludHMoKTsKIAotICAgIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCkgPSAwOwogCiAgICAgY29u
c3QgVmVjdG9yPFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24+JiBnZXRBY3Rpb25zRm9yQnJlYWtwb2lu
dChKU0M6OkJyZWFrcG9pbnRJRCk7CkBAIC0xMDksMTIgKzEwNyw5IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZVBhdXNlKEpTQzo6RGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeURvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMoKSBvdmVycmlkZSBmaW5hbDsKIAotICAg
IHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNUaW1lckZpcmVkKFRpbWVyPFNjcmlwdERlYnVn
U2VydmVyPiYpOwotCiAgICAgdW5zaWduZWQgbV9oaXRDb3VudDsKICAgICBib29sIG1fY2FsbGlu
Z0xpc3RlbmVyczsKICAgICBCcmVha3BvaW50SURUb0FjdGlvbnNNYXAgbV9icmVha3BvaW50SURU
b0FjdGlvbnM7Ci0gICAgVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+IG1fcmVjb21waWxlVGltZXI7
CiAKICAgICBmcmllbmQgY2xhc3MgRGVidWdnZXJDYWxsRnJhbWVTY29wZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKaW5kZXggYmVjOWU1Ny4uNjk1MWJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNTUsMTAgKzU1LDI3
IEBAIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVn
TGlzdGVuZXIqIGxpc3RlbmVyKQogICAgIGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIG1fd29ya2VyR2xvYmFs
U2NvcGUtPnNjcmlwdCgpLT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICBib29sIHdhc0VtcHR5
ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOwogICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7
Ci0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKKworICAgIGlmICh3YXNFbXB0eSkgewor
ICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+YXR0YWNoRGVidWdnZXIodGhp
cyk7CisgICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CisgICAgfQorfQorCit2b2lk
IFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3Rl
bmVyKiBsaXN0ZW5lciwgYm9vbCBza2lwUmVjb21waWxlKQoreworICAgIGlmICghbGlzdGVuZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7CisK
KyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fd29ya2VyR2xvYmFs
U2NvcGUtPnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICAgICAgaWYgKCFza2lw
UmVjb21waWxlKQorICAgICAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKKyAgICB9
CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zKCkKQEAgLTY2LDIxICs4Myw3IEBAIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zKCkKICAgICBKU0M6OlZNKiB2bSA9IG1fd29ya2VyR2xvYmFs
U2NvcGUtPnNjcmlwdCgpLT52bSgpOwogCiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7
Ci0gICAgLy8gSWYgSmF2YVNjcmlwdCBzdGFjayBpcyBub3QgZW1wdHkgcG9zdHBvbmUgcmVjb21w
aWxhdGlvbi4KLSAgICBpZiAodm0tPmVudHJ5U2NvcGUpCi0gICAgICAgIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zU29vbigpOwotICAgIGVsc2UKLSAgICAgICAgSlNDOjpEZWJ1Z2dlcjo6cmVjb21w
aWxlQWxsSlNGdW5jdGlvbnModm0pOwotfQotCi12b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVy
OjpyZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lcikKLXsKLSAgICBp
ZiAoIWxpc3RlbmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xpc3RlbmVycy5yZW1vdmUo
bGlzdGVuZXIpOwotICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIG1fd29y
a2VyR2xvYmFsU2NvcGUtPnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICBKU0M6
OkRlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyh2bSk7CiB9CiAKIHZvaWQgV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4
IGJmNjE2YWEuLjc2MmQyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtNDUsMjAgKzQ1LDE3IEBAIHB1YmxpYzoK
ICAgICBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IFN0
cmluZyYpOwogICAgIH5Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcigpIHsgfQogCisgICAgdmlydHVh
bCB2b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIGFk
ZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqKTsKLSAgICB2b2lkIHJlbW92ZUxpc3RlbmVy
KFNjcmlwdERlYnVnTGlzdGVuZXIqKTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFNjcmlwdERl
YnVnTGlzdGVuZXIqLCBib29sIHNraXBSZWNvbXBpbGUpOwogCiAgICAgdm9pZCBpbnRlcnJ1cHRB
bmRSdW5UYXNrKFBhc3NPd25QdHI8U2NyaXB0RGVidWdTZXJ2ZXI6OlRhc2s+KTsKIAotICAgIHZv
aWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIExpc3RlbmVyU2V0KiBnZXRMaXN0ZW5lcnNGb3JHbG9iYWxPYmplY3QoSlNDOjpKU0ds
b2JhbE9iamVjdCopIG92ZXJyaWRlIHsgcmV0dXJuICZtX2xpc3RlbmVyczsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaWRQYXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSB7
IH0KLQotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRlbnRTY3JpcHQoSlNDOjpFeGVjU3RhdGUqKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9v
cFdoaWxlUGF1c2VkKCkgb3ZlcnJpZGU7CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSogbV93b3Jr
ZXJHbG9iYWxTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKaW5kZXggNmMzNGJiMi4uMmE3YTY5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6Okluc3AKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMp
OwogfQogCi12b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24p
CiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAppbmRleCA0Yjg2MmFhLi41MmQ4ZTBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB+SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRh
dGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKEZyYW1lKik7CiAgICAgdm9pZCBuZXR3b3JrU3RhdGVD
aGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcAppbmRleCBjMDg0OTkwLi4wMWE1MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCB2b2lkIEluc3Bl
Y3RvckNTU0FnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNw
ZWN0b3JGcm9udGVuZAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JDU1NCYWNr
ZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCBkY2JhOTFhLi4xMGI0ZmU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtOTYsNyAr
OTYsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGZvcmNlUHNldWRvU3RhdGUoRWxlbWVudCosIENT
U1NlbGVjdG9yOjpQc2V1ZG9UeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3Rv
ckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaXNjYXJkQWdl
bnQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3Bw
CmluZGV4IGIzMDZmYWEuLjk1MjU4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtODAsNyArODAsNyBAQCB2b2lkIEluc3Bl
Y3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JGcm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JDYW52YXNC
YWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCAzYmM3YjEx
Li5hOWEzOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckNhbnZh
c0FnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RS
ZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSopOwogICAg
IHZvaWQgZnJhbWVEZXRhY2hlZChGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCBhMjQzMjVhLi43MDFhZWE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9uCiAgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckNvbnNvbGVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3Jl
YXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ29u
c29sZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggNWY5OGMzNi4uNjIzYmNkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAt
NjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgdmlydHVhbCB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0
cjxTY3JpcHRBcmd1bWVudHM+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7
CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3Jp
cHRJRCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OkV4
ZWNTdGF0ZSogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
aW5kZXggYTZlYjUxMC4uZTM5YTZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIEluc3BlY3RvckNv
bnRyb2xsZXI6On5JbnNwZWN0b3JDb250cm9sbGVyKCkKIAogdm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCkKIHsKLSAgICBkaXNjb25uZWN0RnJvbnRlbmQo
KTsKKyAgICBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5z
cGVjdGVkT2JqZWN0QmVpbmdEZXN0cm95ZWQpOwogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LT5kaXNjb25uZWN0KCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmluc3BlY3RvckRlc3Ryb3ll
ZCgpOwogICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gbnVsbHB0cjsKQEAgLTI2NiwxMiArMjY2LDEy
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFuCiAjZW5kaWYKIH0KIAotdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICBtX2Fn
ZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9pbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1faW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNsb3NlKCkKIHsKICAgICBpZiAoIW1faW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKQogICAgICAgICByZXR1cm47Ci0gICAgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAg
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlz
Y29ubmVjdGVkKTsKICAgICBtX2luc3BlY3RvckNsaWVudC0+Y2xvc2VJbnNwZWN0b3JGcm9udGVu
ZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaAppbmRleCA4OWU5NzgwLi40MDVlNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzUmVtb3RlRnJvbnRlbmQoKSBjb25zdDsKIAogICAgIHZvaWQgY29ubmVjdEZyb250
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNj
b25uZWN0RnJvbnRlbmQoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pOwogICAgIHZvaWQgc2V0UHJvY2Vzc0lkKGxvbmcp
OwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA3MmJmODU1Li5mMjRjYWFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTI0
NCw3ICsyNDQsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZAogICAgICAgICBmb2N1c05vZGUo
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBhYjI5OTkwLi4x
MzQ1YmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHRvRXJyb3JT
dHJpbmcoY29uc3QgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCos
IEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxEb2N1bWVu
dCo+IGRvY3VtZW50cygpOwogICAgIHZvaWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAppbmRleCA3Zjky
MWEzLi45N2IyOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3IKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yRE9NRGVi
dWdnZXJCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAppbmRleCBhNThmNDhkLi5jMzIzNzhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2VPbk5h
dGl2ZUV2ZW50SWZOZWVkZWQoYm9vbCBpc0RPTUV2ZW50LCBjb25zdCBTdHJpbmcmIGV2ZW50TmFt
ZSwgYm9vbCBzeW5jaHJvbm91cyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3Rv
ckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaXNjYXJkQWdl
bnQoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggOWY1MjlhYi4uMjVjNmZj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckYK
ICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yRE9NU3RvcmFnZUJhY2tlbmREaXNw
YXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAppbmRleCBj
NjJhYTcxLi41YWQyYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB+
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwg
SW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20g
dGhlIGZyb250LWVuZC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudC5jcHAKaW5kZXggMzFhNjFkOC4uMjg2MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcApAQCAtMjI4LDcgKzIy
OCw3IEBAIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0
Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlQWdlbnQuaAppbmRleCA2ZmI3MTA4Li4zMjI5NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKQEAgLTU2LDcgKzU2LDcg
QEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JEYXRhYmFzZUFnZW50KCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBjbGVhclJlc291cmNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNmU5MGIzNC4uOTYzYWM4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcApAQCAtOTUsMTIgKzk1LDEyIEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5h
YmxlKCkKICAgICBtX2VuYWJsZWQgPSB0cnVlOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmRpc2FibGUoKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGJv
b2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsKICAgICBtX2phdmFTY3JpcHRCcmVha3BvaW50cy5jbGVh
cigpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dChudWxscHRyKTsKIAotICAgIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpOworICAg
IHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcihpc0JlaW5nRGVzdHJveWVkKTsKICAgICBj
bGVhclJlc29sdmVkQnJlYWtwb2ludFN0YXRlKCk7CiAKICAgICBpZiAobV9saXN0ZW5lcikKQEAg
LTEyNCw3ICsxMjQsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoRXJy
b3JTdHJpbmcqKQogICAgIGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBk
aXNhYmxlKCk7CisgICAgZGlzYWJsZShmYWxzZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyKiBiYWNrZW5kRGlzcGF0Y2hlcikKQEAgLTEzMywxMiArMTMzLDEzIEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRlYnVnZ2Vy
QmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ryb3llZDsK
KyAgICBkaXNhYmxlKHNraXBSZWNvbXBpbGUpOwogfQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OnNldEJyZWFrcG9pbnRzQWN0aXZlKEVycm9yU3RyaW5nKiwgYm9vbCBhY3RpdmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApp
bmRleCBmOTlhYTM4Li5hZGI3NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICBib29sIGlz
UGF1c2VkKCk7CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlKTsKQEAgLTEyOCwxNCArMTI4LDE0IEBAIHByb3RlY3RlZDoKICAgICBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3I6OkluamVjdGVk
U2NyaXB0TWFuYWdlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nU2NyaXB0
RGVidWdTZXJ2ZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHRE
ZWJ1Z1NlcnZlcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcExpc3RlbmluZ1NjcmlwdERl
YnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBt
dXRlQ29uc29sZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpID0gMDsK
ICAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7IH0KICAgICB2aXJ0
dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9y
U3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCBlbmFibGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZSgpOworICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGNhbGxGcmFtZXMsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBleGNlcHRpb24pIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZSgpIG92ZXJyaWRlOwogICAgIHZv
aWQgZGlkQ2xlYXJHbG9iYWxPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IDU0ODMwYmMuLjc3
NzUzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50LmNwcApAQCAtODUsNyArODUsNyBAQCB2b2lkIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJ
bnNwZWN0bwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJC
YWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoKQordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuaAppbmRleCA5ODA0ZmU0Li5jOTQ4MjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaApAQCAtNjcsNyAr
NjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUoRXJyb3JTdHJp
bmcqLCBpbnQgdWlkKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNw
ZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUhl
YXBTbmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wqIHJlcG9ydFByb2dyZXNzKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
ZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAKaW5kZXggZGI0NTFmZC4uYWYzYzU5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01NzQs
NyArNTc0LDcgQEAgdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnIKICAgICBtX2JhY2tlbmREaXNwYXRj
aGVyID0gSW5zcGVjdG9ySW5kZXhlZERCQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5k
RGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCmluZGV4IGFlNjE5
ODguLmQwNzFhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJv
bnQtZW5kLgogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcApp
bmRleCBjNGI4Nzg5Li5jNDVhMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcklucHV0QWdlbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSW5zcGVjdG9y
SW5wdXRBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRnJvbnRlCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvcklucHV0QmFja2Vu
ZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySW5wdXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JJbnB1dEFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1
dEFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5o
CmluZGV4IDg4ZWI5MzMuLmYxNTJhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcklucHV0QWdlbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgfklu
c3BlY3RvcklucHV0QWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9t
IHRoZSBmcm9udGVuZCBmb3Igc2ltdWxhdGluZyBpbnB1dC4KICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgaW50
KiBtb2RpZmllcnMsIGNvbnN0IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJpbmcqIHRleHQs
IGNvbnN0IFN0cmluZyogdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyoga2V5SWRlbnRpZmll
ciwgY29uc3QgaW50KiB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGNvbnN0IGludCogbmF0aXZlVmly
dHVhbEtleUNvZGUsIGNvbnN0IGludCogbWFjQ2hhckNvZGUsIGNvbnN0IGJvb2wqIGF1dG9SZXBl
YXQsIGNvbnN0IGJvb2wqIGlzS2V5cGFkLCBjb25zdCBib29sKiBpc1N5c3RlbUtleSkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmNwcAppbmRleCBjMGZjMjYwLi4wODZlM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKQEAgLTY2LDcgKzY2
LDcgQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnIKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
SW5zcGVjdG9yTGF5ZXJUcmVlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0
Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmgKaW5kZXggNzIxYjMxMC4uNzU2MWFjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKQEAgLTUzLDcg
KzUzLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lkIGxheWVyVHJlZURpZENoYW5nZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5k
ZXggYjc0YzM1My4uMTY0ZDkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgSW5zcGVjdG9y
TWVtb3J5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckZyb250CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rvck1lbW9yeUJhY2tl
bmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lk
IEluc3BlY3Rvck1lbW9yeUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2
b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFn
ZW50LmgKaW5kZXggYzVjMTBhZi4uMTJmM2E5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfkluc3BlY3Rvck1lbW9yeUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCB2b2lkIGdldERPTUNvdW50ZXJzKEVycm9yU3RyaW5nKiwgaW50KiBkb2N1bWVudHMsIGludCog
bm9kZXMsIGludCoganNFdmVudExpc3RlbmVycykgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZTQ3ZmZkZC4uMGVk
MGUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbgogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JQYWdlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0
ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNv
bikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oCmluZGV4IDc3NDE1M2EuLjgzZDEyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBJbnNwZWN0b3IgQ29udHJvbGxlciBBUEkKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ3Jv
c3MtYWdlbnRzIEFQSQogICAgIFBhZ2UqIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApp
bmRleCAxZjI1YTNlLi4xMTNkYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlY29tcGlsZVNjcmlwdCgpIG92ZXJyaWRlCiAg
ICAgewotICAgICAgICBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zU29vbigpOworICAgICAgICBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJl
ZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0UHJvZmlsaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlCkBAIC0yMDIsMjMg
KzIwMiwyMiBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Omhhc0hlYXBQcm9maWxlcihF
cnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50
OjplbmFibGUoRXJyb3JTdHJpbmcqKQogewotICAgIGlmIChlbmFibGVkKCkpCi0gICAgICAgIHJl
dHVybjsKICAgICBlbmFibGUoZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogewotICAgIGRpc2FibGUoKTsKKyAgICBkaXNhYmxl
KGZhbHNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKCkKK3Zv
aWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlzYWJsZShib29sIHNraXBSZWNvbXBpbGUpCiB7
CiAgICAgaWYgKCFtX2VuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2VuYWJsZWQgPSBm
YWxzZTsKICAgICBtX3Byb2ZpbGVIZWFkZXJzUmVxdWVzdGVkID0gZmFsc2U7Ci0gICAgcmVjb21w
aWxlU2NyaXB0KCk7CisgICAgaWYgKCFza2lwUmVjb21waWxlKQorICAgICAgICByZWNvbXBpbGVT
Y3JpcHQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjplbmFibGUoYm9vbCBz
a2lwUmVjb21waWxlKQpAQCAtMzMzLDE0ICszMzIsMTUgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxl
ckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm8KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yUHJvZmlsZXJCYWNrZW5kRGlz
cGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lk
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRj
aGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiAKICAgICBz
dG9wKCk7Ci0gICAgRXJyb3JTdHJpbmcgZXJyb3I7Ci0gICAgZGlzYWJsZSgmZXJyb3IpOworCisg
ICAgYm9vbCBza2lwUmVjb21waWxlID0gcmVhc29uID09IEluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b246Okluc3BlY3RlZE9iamVjdEJlaW5nRGVzdHJveWVkOworICAgIGRpc2FibGUoc2tpcFJlY29t
cGlsZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6c3RhcnQoRXJyb3JTdHJp
bmcqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmgKaW5kZXggMmEyYjdmYi4uZDM3OTM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoRXJyb3JTdHJpbmcqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoRXJyb3JTdHJpbmcqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGRpc2FibGUoKTsKKyAgICB2b2lkIGRpc2FibGUoYm9vbCBza2lwUmVj
b21waWxlKTsKICAgICB2b2lkIGVuYWJsZShib29sIHNraXBSZWNvbXBpbGUpOwogICAgIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAgIFN0cmluZyBnZXRDdXJy
ZW50VXNlckluaXRpYXRlZFByb2ZpbGVOYW1lKGJvb2wgaW5jcmVtZW50UHJvZmlsZU51bWJlciA9
IGZhbHNlKTsKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVQcm9maWxlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBpbnQgdWlkKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNv
bikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChFcnJvclN0
cmluZyosIGNvbnN0IGJvb2wqIHJlcG9ydFByb2dyZXNzKSBvdmVycmlkZTsKICAgICB2b2lkIHRv
Z2dsZVJlY29yZEJ1dHRvbihib29sIGlzUHJvZmlsaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCAzMjQ0ZDdlLi43
ODNkMDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJv
CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rvck5ldHdvcmtCYWNrZW5kRGlzcGF0
Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCmluZGV4IGM5NTBiNzEuLmQy
Y2EyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvclJlc291
cmNlQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVj
dFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBtYXJrUmVzb3Vy
Y2VBc0NhY2hlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGU0YTRkNTcu
LmY4YTZjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm8KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yVGltZWxpbmVCYWNrZW5kRGlz
cGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBu
dWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDJmNGY3ZGUu
LjRjNWVkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9y
VGltZWxpbmVBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydChFcnJvclN0
cmluZyosIGNvbnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGgsIGNvbnN0IGJvb2wqIGluY2x1ZGVE
b21Db3VudGVycykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoRXJyb3JTdHJpbmcq
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29y
a2VyQWdlbnQuY3BwCmluZGV4IDBmYmRiZGQuLmI4MTA4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMTIyLDcgKzEyMiw3
IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IElu
c3BlY3RvcldvcmtlckJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fc2hv
dWxkUGF1c2VEZWRpY2F0ZWRXb3JrZXJPblN0YXJ0ID0gZmFsc2U7CiAgICAgZGlzYWJsZShudWxs
cHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
LmgKaW5kZXggM2E5NTE0NC4uNzUzYzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAg
IH5JbnNwZWN0b3JXb3JrZXJBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIElu
c3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCBmcm9tIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkUGF1c2VEZWRpY2F0ZWRXb3Jr
ZXJPblN0YXJ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1
Z2dlckFnZW50LmNwcAppbmRleCAwYzAxOGJlLi41YTczNWU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTY1LDkgKzY1LDkgQEAgdm9p
ZCBQYWdlRGVidWdnZXJBZ2VudDo6ZW5hYmxlKCkKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMt
PnNldFBhZ2VEZWJ1Z2dlckFnZW50KHRoaXMpOwogfQogCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50
OjpkaXNhYmxlKCkKK3ZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoYm9vbCBpc0JlaW5n
RGVzdHJveWVkKQogewotICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoKTsKKyAg
ICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGlzQmVpbmdEZXN0cm95ZWQpOwogICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGFnZURlYnVnZ2VyQWdlbnQobnVsbHB0cik7CiB9
CiAKQEAgLTc2LDkgKzc2LDkgQEAgdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6c3RhcnRMaXN0ZW5p
bmdTY3JpcHREZWJ1Z1NlcnZlcigpCiAgICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS5hZGRMaXN0ZW5l
cih0aGlzLCBtX3BhZ2VBZ2VudC0+cGFnZSgpKTsKIH0KIAotdm9pZCBQYWdlRGVidWdnZXJBZ2Vu
dDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkKK3ZvaWQgUGFnZURlYnVnZ2VyQWdl
bnQ6OnN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcihib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiB7Ci0gICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBtX3BhZ2VB
Z2VudC0+cGFnZSgpKTsKKyAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRo
aXMsIG1fcGFnZUFnZW50LT5wYWdlKCksIGlzQmVpbmdEZXN0cm95ZWQpOwogfQogCiBQYWdlU2Ny
aXB0RGVidWdTZXJ2ZXImIFBhZ2VEZWJ1Z2dlckFnZW50OjpzY3JpcHREZWJ1Z1NlcnZlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oCmluZGV4IDBhNTc5
YWMuLjRkZDE3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVi
dWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJB
Z2VudC5oCkBAIC01NCwxMSArNTQsMTEgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB2b2lkIGVuYWJsZSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVk
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMaXN0ZW5pbmdT
Y3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVu
aW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcExp
c3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCBkM2Y2ZjU2Li4wMzQyNjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC03
MSw3ICs3MSw3IEBAIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvclJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmRE
aXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBQYWdlUnVudGltZUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4
IGYwY2JhNDQuLmU2MmMzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGFnZVJ1
bnRpbWVBZ2VudCgpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6
Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dl
ckFnZW50LmNwcAppbmRleCA1NThmOWNhLi44ZjMzNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0xMjIsOSArMTIyLDkgQEAg
dm9pZCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpzdGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVy
KCkKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLmFkZExpc3RlbmVyKHRoaXMpOwogfQogCi12b2lk
IFdvcmtlckRlYnVnZ2VyQWdlbnQ6OnN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpCit2
b2lkIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OnN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcihi
b29sIGlzQmVpbmdEZXN0cm95ZWQpCiB7Ci0gICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS5yZW1vdmVM
aXN0ZW5lcih0aGlzKTsKKyAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRo
aXMsIGlzQmVpbmdEZXN0cm95ZWQpOwogfQogCiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgV29y
a2VyRGVidWdnZXJBZ2VudDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggZWFkZDc0Mi4uOGEwMzJiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCkBA
IC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbnRlcnJ1cHRBbmREaXNw
YXRjaEluc3BlY3RvckNvbW1hbmRzKFdvcmtlclRocmVhZCopOwogCiAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgc3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcihib29sIGlzQmVpbmdEZXN0
cm95ZWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIHNj
cmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNv
bGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBjZDY5ODU0Li5lYmJjZmNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2wKIFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkKIHsKICAg
ICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnJlc2V0KCk7Ci0gICAgZGlzY29ubmVjdEZyb250ZW5k
KCk7CisgICAgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Oklu
c3BlY3RlZE9iamVjdEJlaW5nRGVzdHJveWVkKTsKIH0KIAogdm9pZCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQpAQCAtMTI3LDExICsxMjcsMTIgQEAgdm9pZCBX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgIG1fYWdlbnRz
LmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSwgbV9i
YWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiB9CiAKLXZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkKK3ZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQog
ewogICAgIGlmICghbV9mcm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2Fn
ZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworCisgICAgbV9hZ2VudHMud2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwog
ICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGZlNmZkYTcuLjdi
MjQzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXIuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgfldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKCk7Ci0gICAg
dm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pOwogICAgIHZvaWQgZGlzcGF0Y2hN
ZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKQogICAgIHZvaWQgcmVzdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDliNjQwZDcuLjZjNDAxNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC02
NCw3ICs2NCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvclJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmRE
aXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAppbmRleCBlOTAyMmIyLi4wM2VhZDg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00Niw3ICs0
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7
CiAKICAgICAvLyBQcm90b2NvbCBjb21tYW5kcy4KICAgICB2aXJ0dWFsIHZvaWQgcnVuKEVycm9y
U3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VE
ZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCmlu
ZGV4IGMxZjI2NTIuLjFlNjBiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZURlYnVnZ2FibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRm9yd2FyZGluZy5oIgog
I2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7
CiAKQEAgLTg0LDcgKzg1LDcgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKIHZvaWQgUGFnZURlYnVnZ2Fi
bGU6OmRpc2Nvbm5lY3QoKQogewogICAgIEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNv
bnRyb2xsZXIgPSBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGluc3BlY3RvckNv
bnRyb2xsZXIuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgaW5zcGVjdG9yQ29udHJvbGxlci5k
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6RnJvbnRlbmREaXNj
b25uZWN0ZWQpOwogICAgIGluc3BlY3RvckNvbnRyb2xsZXIuc2V0SGFzUmVtb3RlRnJvbnRlbmQo
ZmFsc2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYmViNjlk
OS4uNDc0N2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTYsNiAr
OTYsNyBAQAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCiAjaW5jbHVkZSA8Ynl0ZWNvZGUvQ29kZUJsb2NrLmg+CisjaW5jbHVkZSA8aW5z
cGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xNDY0LDcgKzE0NjUsOCBAQCB2b2lkIEludGVybmFsczo6
Y2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCkKICAgICBBU1NFUlQocGFnZSk7CiAgICAgQVNT
RVJUKG1fZnJvbnRlbmRXaW5kb3cpOwogCi0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIHBhZ2Ug
d2UgYXJlIGluc3BlY3RpbmcgaXMgY2xvc2luZy4KKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3Bl
Y3RlZE9iamVjdEJlaW5nRGVzdHJveWVkKTsKIAogICAgIG1fZnJvbnRlbmRDaGFubmVsLnJlbGVh
c2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCBkNTA0YWQyLi4zZTdjMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUg
Ildvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKICNpbmNsdWRlICJX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQyOCw3ICs0MjksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpj
b25uZWN0VG9JbnNwZWN0b3IoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6UGFnZUluc3BlYwogc3Rh
dGljIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZUluc3BlY3RvclRhc2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkKIHsKICAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwotICAg
IHN0YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlKj4oY29udGV4dCktPndvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICBzdGF0aWNfY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZSo+KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuZGlz
Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6RnJv
bnRlbmREaXNjb25uZWN0ZWQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA0MDdm
OTZmLi4yOTVmNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDEt
MjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0
RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93
KToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAx
LTE5ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZM
XVtXSzFdIFJlbW92ZSBhbmQgcmVmYWN0b3IgdGhlIEFQSXMgd2hpY2ggdXNlIHNpbmdsZSBhbmQg
YmFzZSBrZXl3b3JkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAppbmRleCBjYTE4Zjk2Li4zMmU0MDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEVmbC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKKyNp
bmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMTMs
NyArMjE0LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6c2V0VG9vbGJhckhl
aWdodCh1bnNpZ25lZCkKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRlc3Ryb3lJ
bnNwZWN0b3JXaW5kb3coYm9vbCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQogewogICAgIGlm
IChub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBFV0tQcml2YXRlOjpjb3JlUGFn
ZShtX2luc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250
ZW5kKCk7CisgICAgICAgIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1faW5zcGVjdGVkVmlldyktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7CiAKICAgICBpZiAobV9p
bnNwZWN0b3JDbGllbnQpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRl
bmRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZjU1ZThkYi4uN2ZhNTg2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29t
cGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIyICBUaGlhZ28gZGUgQmFycm9zIExhY2Vy
ZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtFRkxdW0dUS10g
R2V0IEVGTCBhbmQgR1RLIGNvbXBpbGluZyB3aXRoIEFDQ0VTU0lCSUxJVFkgZGlzYWJsZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuY3BwCmluZGV4IGNkYWQ4ZjcuLjY0N2IwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3RvcnByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIK
KyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0x
ODksNyArMTkwLDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3Bl
Y3RvcldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2wKICAgICB9CiAKICAgICBpZiAo
bm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgY29yZShtX2luc3BlY3RlZFdlYlZp
ZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgICAg
IGNvcmUobV9pbnNwZWN0ZWRXZWJWaWV3KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5k
RGlzY29ubmVjdGVkKTsKIAogICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkKICAgICAgICAgbV9p
bnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCA3N2VhY2Y1Li43YjZlNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4g
U2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAg
ICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIGRlc3Ryb3lJbnNwZWN0b3JWaWV3Ol0p
OgorICAgICAgICBJbmNsdWRlIEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24uCisKIDIwMTQtMDEt
MjIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXgg
Zm9yIGlPUyBjbGllbnRzIG9mIFdlYlVJRGVsZWdhdGVQcml2YXRlLmguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5k
ZXggMzJhNzI3MC4uZmQ2YzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNDQsNiArNDQsNyBAQAogI2lt
cG9ydCAiV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxi
aW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgorI2ltcG9ydCA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01h
aW5GcmFtZS5oPgpAQCAtNjkzLDcgKzY5NCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OmFwcGVuZChjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZFVSTCwgY29uc3QgU3RyaW5nCiAK
ICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikgewogICAgICAgICBpZiAoUGFnZSog
aW5zcGVjdGVkUGFnZSA9IFtfaW5zcGVjdGVkV2ViVmlldy5nZXQoKSBwYWdlXSkKLSAgICAgICAg
ICAgIGluc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoKTsKKyAgICAgICAgICAgIGluc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5k
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpG
cm9udGVuZERpc2Nvbm5lY3RlZCk7CiAgICAgfQogCiAgICAgUmV0YWluUHRyPFdlYkluc3BlY3Rv
cldpbmRvd0NvbnRyb2xsZXI+IHByb3RlY3Qoc2VsZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOTZl
NDU5YS4uOWYwYTUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAx
LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlw
dERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZpZXcpOgorICAgICAg
ICBJbmNsdWRlIEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24uCisKIDIwMTQtMDEtMjEgIHBlYXZv
QG91dGxvb2suY29tICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXVtD
dXJsXSBEb3dubG9hZCByZXF1ZXN0IGhhcyBpbmNvcnJlY3QgdXNlciBhZ2VudCBzdHJpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmNwcAppbmRleCBmMjJiNzA5Li45NzYzOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTQ4
LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+CiAKKyNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVkZSA8d2NoYXIuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4K
QEAgLTQzOCw3ICs0MzksNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0
cm95SW5zcGVjdG9yVmlldyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRybwogICAgIGNsb3NlV2lu
ZG93V2l0aG91dE5vdGlmaWNhdGlvbnMoKTsKIAogICAgIGlmIChub3RpZnlJbnNwZWN0b3JDb250
cm9sbGVyKSB7Ci0gICAgICAgIG1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgICAgIG1faW5zcGVjdGVkV2Vi
Vmlldy0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6RnJvbnRlbmREaXNjb25uZWN0ZWQp
OwogICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+dXBkYXRlSGlnaGxpZ2h0KCk7CiAgICAgfQog
ICAgIDo6RGVzdHJveVdpbmRvdyhtX2Zyb250ZW5kSHduZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWFhNjc5
Yi4uMWZmM2UwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAxLTIyICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2Vy
dmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0
MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VXaW5kb3cp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OnJlbW90ZUZyb250ZW5kRGlzY29ubmVjdGVkKToKKyAg
ICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIyICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IDMyLWJp
dCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKaW5k
ZXggMDU4ZjBmZi4uMzk2ZWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKQEAgLTU3LDcgKzU4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6YnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
Y2xvc2VXaW5kb3coKQogewotICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3Rv
ckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBtX3BhZ2UtPmlu
c3BlY3RvcigpLT5kaWRDbG9zZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDQzMDUyMmIuLmM5YTM2OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
Y3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xs
ZXIuaD4KKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVk
ZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZS5oPgogCkBAIC0zMjYsNyArMzI3LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnJlbW90
ZUZyb250ZW5kQ29ubmVjdGVkKCkKIHZvaWQgV2ViSW5zcGVjdG9yOjpyZW1vdGVGcm9udGVuZERp
c2Nvbm5lY3RlZCgpCiB7CiAgICAgQVNTRVJUKG1fcmVtb3RlRnJvbnRlbmRDb25uZWN0ZWQpOwot
ICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246
OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBtX3JlbW90ZUZyb250ZW5kQ29ubmVjdGVkID0g
ZmFsc2U7CiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221931</attachid>
            <date>2014-01-22 17:59:02 -0800</date>
            <delta_ts>2014-01-22 18:19:51 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix - Passing Tests</desc>
            <filename>again.patch</filename>
            <type>text/plain</type>
            <size>123420</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzBmYjc0Li5lOGQyOTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTQtMDEt
MjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0
RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IGluIHRlc3RzLiBCcmVha3Bv
aW50cyBhcmUgYWxyZWFkeQorICAgICAgICBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGVzdHMuIEFs
c28gc2luY2UgdGhlIERlYnVnZ2VyQWdlbnQuZW5hYmxlKCkgY2FsbAorICAgICAgICBub3cgaW1t
ZWRpYXRlbHkgcmVjb21waWxlcyBzY3JpcHRzLCBzb3VyY2VQYXJzZWQgZXZlbnRzIGFyZSBub3cg
c2VudCB0bworICAgICAgICB0aGUgZnJvbnRlbmQgZWFybGllciBldmVuIGJlZm9yZSB0aGUgc2V0
QnJlYWtwb2ludHNBY3RpdmUgbWVzc2FnZSBoYXMKKyAgICAgICAgYmVlbiBwcm9jZXNzZWQsIHNv
IHRoZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IHdhcyBzaG93aW5nIHVwCisgICAgICAg
IGxhdGVyLCBzZWVtaW5nbHkgcmFuZG9tbHkgaW4gdGVzdHMsIGFuZCBpcyBubyBsb25nZXIgaGVs
cGZ1bC4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRp
dGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRo
LWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1p
bnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1h
Y3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
dGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Nh
bGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxl
LXByb2Jlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQ
YXVzZU9uRXhjZXB0aW9ucy1hbGwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVt
b3ZlZC5odG1sOgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVg6IFdlYktpdCBjb25jYXRlbmF0ZXMgbmFtZSBvZiBhbGwgdG9v
bGJhciBidXR0b25zIGluIHRoZSBhcHBsZS5jb20gdmlkZW8gcGxheWVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CmluZGV4IDY0NmUzOTAu
LmE3MzFiMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxl
IGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGlu
dWUgZXhlY3V0aW5nIGNvZGUuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9p
bnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMp
CiBDbG9zaW5nIHRoZSBpbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0
YWNoLmh0bWwKaW5kZXggOTUxMDIxMS4uYmFjOGY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2guaHRtbApAQCAtNTAsOSArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDU3ZDI5NjMuLmJkNDEwZjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwu
Y2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CmluZGV4IGRlNmM4NGMuLjNiOTQ3M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCkBAIC00NywxMCArNDcsNiBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAg
fSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKaW5kZXggYmFlODc3Mi4uNzg4NmQ3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4g
YWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1
Z2dlci4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKIENsb3NpbmcgdGhl
IGluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRt
bAppbmRleCAzNTIwYjQ5Li42MTdlZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29u
ZGl0aW9uLWRldGFjaC5odG1sCkBAIC01MCwxMCArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDk1NWFhMDUuLjVi
MWUyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0
aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1
c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGNv
bmRpdGlvbnMuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGlu
c2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBU
aGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiB0aGUgZXhjZXB0aW9uIGluc2lkZSB0aGUg
Y29uZGl0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24uaHRtbAppbmRleCA4NzhkNjU0Li5jMWZjMjE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
d2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApAQCAtNDYs
MTAgKzQ2LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0Zv
ckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1l
dmFsLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDAxYjg0ZDguLmU3MDEyYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBA
QAogV2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxk
IGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCiAKLUJyZWFrcG9p
bnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50QmFzaWMK
IFBBU1M6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIm90aGVyIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13
aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IGUyYmNlNTIuLjk2
YTMwMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9u
Lmh0bWwKQEAgLTU2LDEwICs1Niw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHth
Y3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBjYjVhZjVlLi5hMzM0ODQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRoZSBk
ZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1
dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCBicmVha3BvaW50LmpzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjoo
MikgYStiOigzKQogRXhlY3V0aW5nIGNvbmRpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1h
bmQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy5odG1sCmluZGV4IDZjMWNj
NTkuLmEyZTU4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwKQEAgLTYwLDEwICs2MCw2IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCAxMGUyYWZjLi4wYTVmNmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
PHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcg
dGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUuaHRtbAppbmRleCA2ZDkxZjkwLi5mNjU2OWRhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCkBAIC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIC8vIGNhbGwgZnJhbWUgZnVuY3Rpb25OYW1lcyBhcmUgd2hhdCB3ZSBleHBlY3QuCiAK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhwZWN0
ZWQudHh0CmluZGV4IGY0MTJlNTAuLjBiOTRjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxl
ZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKaW5kZXggODhiOTJmYi4uZjA2ZTEzNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtdGhpcy1ob3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFtZSB0aGlzIHZhbHVlcyBhcmUgd2hhdCB3ZSBl
eHBlY3QuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUi
LCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtw
b2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dAppbmRleCBjMWRiMDAzLi45MTRkMDA0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10
aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8
c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmluZyB0
ZXN0RnVuY3Rpb24KIFBBU1M6IHN0ZXAgMDogdHlwZSAib2JqZWN0IiBjbGFzc05hbWUgIk51bWJl
ciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sCmluZGV4IGFjNTY0
NDQuLjUwNzg5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRt
bApAQCAtMTIsOSArMTIsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBjYWxsIGZyYW1lIHRo
aXMgdmFsdWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQi
KTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1zdHJpY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0CmluZGV4IGE5NjgzZjQu
LjdjN2IyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6
Y29sdW1uIGluIDxzY3JpcHQ+CiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIDxzY3JpcHQ+
CiBSdW5uaW5nIHRlc3RGdW5jdGlvbgogUEFTUzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZhbHVl
ICIyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWwKaW5kZXggMjhiOGMwZi4u
YTVlZjhjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sCkBAIC0xMiw5
ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGNhbGwgZnJhbWUgdGhpcyB2YWx1ZXMg
YXJlIHdoYXQgd2UgZXhwZWN0LgogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0p
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUt
cHJvYmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3
MTM3MDUuLmQ4YjViYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIu
c2V0QnJlYWtwb2ludCB3aXRoIG11bHRpcGxlIHByb2JlIGFjdGlvbnMgYXQgdGhlIHNhbWUgYnJl
YWtwb2ludC4gVGVzdCBEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSBldmVudHMgZm9yIHRoZSBwcm9i
ZSBzYW1wbGVzLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBQ
QVNTOiBTaG91bGQgcmVjZWl2ZSB0d28gYnJlYWtwb2ludCBhY3Rpb24gaWRlbnRpZmllcnMgb24g
RGVidWdnZXIuc2V0QnJlYWtwb2ludCBjYWxsYmFjay4KIFJ1bm5pbmcgYnJlYWtwb2ludEFjdGlv
bnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmluZGV4IGNmMGUzZjUuLjE2ODA2YWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKQEAgLTgsOSAr
OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIu
Li8uLi8uLi8uLi9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb2JlLWhlbHBlci5qcyIp
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIHNhbXBs
ZXMgPSBbXTsKICAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0gMjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9y
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
bmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY3OTAzNTkuLjYyYzJkZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQt
aW5zcGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYg
QEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjogUEFTUzogRXhwZWN0ZWQgZXhjZXB0
aW9uCiBDaGVja2luZyB0aGF0IHRoZSBpbnNwZWN0b3IgY29kZSBjYW4gYmUgZGVidWdnZWQgdXNp
bmcgYSBzZWNvbmQgaW5zcGVjdG9yIHdpbmRvdy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwKIFBBU1M6IFBhdXNlZCEKIFBBU1M6IFJl
c3VtZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCmluZGV4IGI2YmI3M2QuLmY0NWMwMjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCkBAIC05LDE1ICs5LDEyIEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJ1bnMgaW4gdGhlIHNlY29uZCBpbnNw
ZWN0b3Igd2luZG93LiBXZSBjYW4gdXNlIHRoaXMgb25lIHRvIGRlYnVnIHRoZSBmaXJzdCBpbnNw
ZWN0b3IuCiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5h
YmxlIiwge30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNl
cHRpb25zIC0gYWxsIik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7CiAKLSAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGFuIGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAi
c2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdQQVNTOiBFeHBlY3RlZCBl
eGNlcHRpb24nKSB9LCAwKTsifSk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIFRy
aWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4KKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignUEFTUzogRXhwZWN0ZWQg
ZXhjZXB0aW9uJykgfSwgMCk7In0pOwogICAgICAgICB9KTsKIAogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDFmYWI0
M2QuLmQ5MDYwNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50CiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIFNldCBCcmVha3BvaW50LCBUcmlnZ2VyaW5n
IGl0CiBpbnNpZGUgYnJlYWtwb2ludEJhc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbAppbmRl
eCBlNDIwMGE5Li4yNTU2MTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKQEAgLTYsOSAr
Niw2IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0g
ICAgfSk7CiAKICAgICB2YXIgYnJlYWtwb2ludFRyaWdnZXJlZCA9IDA7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFj
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODIxYzYyZC4uODI0
MjFhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTYsNyArNiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlvbgog
Q09OU09MRSBNRVNTQUdFOiBsb2ctYWN0aW9uLWFmdGVyCiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50
IG9wdGlvbnMuYWN0aW9ucwogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50
LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5v
dCB0cmlnZ2VyCiBpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMSkgYjoodW5kZWZpbmVkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCmluZGV4IDExYjY5YWEuLmI0NmFmM2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwKQEAgLTEwLDkgKzEwLDYgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xl
LmVuYWJsZSIsIHt9KTsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7CiAgICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxl
cyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS1leHBlY3RlZC50eHQKaW5kZXggOGM2MjIwZi4uNmM2YTRkNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRp
bnVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51ZQogCi1CcmVh
a3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRB
dXRvbWF0aWNhbGx5Q29udGludWUgbXVsdGlwbGUgdGltZXMgd2l0aCBhdXRvbWF0aWNhbGx5IGNv
bnRpbnVlCiBpbnNpZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
YXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCA2NGI4MzQ1Li5kNDRhYzNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNiw5
ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBhbGxvd2VkVG9IaXRCcmVha3BvaW50ID0gZmFsc2U7CiAgICAg
dmFyIGJyZWFrcG9pbnRJZGVudGlmaWVyID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0CmluZGV4IGE3YjJkYWQuLjQ4NTQ1NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbHVtbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUg
QEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAot
QnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9u
CiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKaW5kZXgg
NzNlYTk0Yi4uODdmYWNkNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBA
IC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGJ5IHJ1bm5pbmcgc29tZSBl
eHByZXNzaW9ucyBhdCB0aGF0IGNhbGwgZnJhbWUuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVk
Iik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbmRpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDlkNzc3
ZDAuLmE1MmU2YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0
aW9ucy5jb25kaXRpb24KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5q
cwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBsZSB0aW1lcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bmRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKaW5kZXggMTkwMzU4Ny4uZTc2NGU0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29uZGl0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKQEAgLTYsOSArNiw2IEBACiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAgICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDllYTQ5OTcuLjk0
M2RiYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1
IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MCBpbiA8c2NyaXB0IHNyYz0iLi4u
Ij4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUEFTUzogUmVj
ZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludCBhdCBz
cGVjaWZpZWQgbG9jYXRpb24gYWxyZWFkeSBleGlzdHMuCiBSdW5uaW5nIGJyZWFrcG9pbnRCYXNp
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRp
b24tZXhwZWN0ZWQudHh0CmluZGV4IDZkZWJjN2IuLmE5OTdmNDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAndGhpcy53aWxsLmNhdXNlJykKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25k
aXRpb24gb3Igb3B0aW9ucy5hY3Rpb24gd2l0aCBleGNlcHRpb24KIAotQnJlYWtwb2ludHMgRW5h
YmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlv
biB0byB0cmlnZ2VyIGNvbmRpdGlvbiBleGNlcHRpb24uCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwKaW5kZXggNWM5M2M0MS4uYjE1YmRhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCkBAIC05
LDkgKzksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkNvbnNvbGUuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIAogICAgIHZhciBsb2dzU2VlbiA9IDA7CiAgICAgY29uc3QgZXhwZWN0ZWRMb2dzID0g
MjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sCmluZGV4IDkwZjAzNWEuLjdlNzY4YmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQuaHRtbApAQCAtNiw5ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3Rp
dmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwt
ZXhwZWN0ZWQudHh0CmluZGV4IGM1MGRkNzIuLjkwYzExNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNl
VVJMLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50QnlVcmwgaW4gU2NyaXB0IG5hbWVkIHZpYSBz
b3VyY2VVUkwKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgc291cmNlVVJMLXRlc3QuanMK
IFJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVy
bC1zb3VyY2VVUkwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKaW5kZXggMTAxYzJkOC4uMWE3MTZi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBA
IC05LDkgKzksNiBAQCBldmFsKCJmdW5jdGlvbiBzb3VyY2VVUkxGdW5jdGlvbigpIHtcbiAgICB2
YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBjCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKaW5kZXggYTk5YTBkNy4uNjlmN2FiZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDYg
QEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIGFsbAogCi1CcmVha3BvaW50cyBFbmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9u
RXhjZXB0aW9ucyAtIGFsbAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBz
dGF0ZW1lbnRzCiBQYXVzZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0
bWwKaW5kZXggMzE3MWRmYi4uYmVmMzM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0
aW9ucy1hbGwuaHRtbApAQCAtMTAyLDE1ICsxMDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIAog
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2
ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgZnVu
Y3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKLSAgICAgICAgICAgIGV2YWx1
YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3RQ
YXVzZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHJpZ2dlck5leHQoKTsKLSAgICAgICAgICAg
IH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFs
bCIpOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7CisgICAgICAgICAgICB0cmlnZ2VyTmV4dCgpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNl
cHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CmluZGV4IDU3MThkY2QuLmNkZDQ0M2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1ub25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKQEAg
LTEyLDcgKzEyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIG5vbmUKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBub25lCiBQQVNTOiBObyBwYXVzZXMKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLmh0bWwKaW5kZXggYmE4NzBmMy4uNmM2MDcw
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCkBAIC02LDMy
ICs2LDI5IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyAtIG5vbmUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IDEr
MTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgbm9F
eGNlcHRpb24oKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChl
KSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9
IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNo
TmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0
VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7
In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQo
ZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyB9LCAw
KTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3Rl
ZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHt9LmEuYi5jLmQ7IH0sIDAp
OyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkJh
c2ljKCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJl
c3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1N0cmluZygpOyB9LCAwKTsifSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1BhcmFtKHt4OjF9
KTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhy
b3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
fSwgMTApOwotICAgICAgICAgICAgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9u
KHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihy
ZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgMSsxOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IG5vRXhjZXB0aW9uKCk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0Y2ggKGUpIHsg
Y29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShlKSk7IH0gfSwg
MCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChl
eGNlcHRpb25CYXNpYywgMSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7In0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RG
dW5jdGlvbiwgMyk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgY2F0Y2hOZXN0ZWQodGhyb3dTdHJpbmcsIDEwKTsgfSwgMCk7In0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJy
b3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsge30uYS5iLmMuZDsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25CYXNpYygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lv
bjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0s
IDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dTdHJpbmco
KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1Bh
cmFtKHt4OjF9KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0sIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0sIDEwKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDZhMTZiNjcuLjg4OWJmMjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4
cGVjdGVkLnR4dApAQCAtMTksNyArMTksNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNh
dGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gc3RyaW5nIgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjE4
LCJjb2x1bW4iOjEyLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQogRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMgdW5jYXVnaHQKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24g
bm9uLWV4Y2VwdGlvbiBzdGF0ZW1lbnRzIG9yIGNhdWdodCBleGNlcHRpb24gc3RhdGVtZW50cwog
UGF1c2VkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRt
bAppbmRleCBiYmI3YzMzLi4yNWU0MDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbApAQCAtNzksMTUgKzc5LDEyIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAidW5j
YXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodCIpOwot
ICAgICAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0cmlnZ2VyTmV4
dFVuY2F1Z2h0RXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogInVu
Y2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIHVuY2F1Z2h0Iik7CisgICAgICAg
IGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVj
dFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24o
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4
cGVjdGVkLnR4dAppbmRleCBlY2VjNTBiLi43MDlhYjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2Rl
LXJlbW92ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogVGVzdGluZyB0aGF0IERPTS5j
aGlsZE5vZGVSZW1vdmVkIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQgZXZlbiB3aGVuIHRoZSBlbGVt
ZW50IGlzIG1vdmVkIHdoaWxlIHBhdXNlZCBpbiB0aGUgZGVidWdnZXIgb24gYSBET01EZWJ1Z2dl
ciAibm9kZS1yZW1vdmVkIiBicmVha3BvaW50LgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCA8c2NyaXB0PgogU3RvcHBlZCBvbiBET00gYnJlYWtwb2ludAogUEFTUzogb25DaGlsZE5vZGVS
ZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRt
bAppbmRleCAyNTA0ZTQ1Li5iNjYxNmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwKQEAg
LTExOCwxMyArMTE4LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRET01CcmVha3BvaW50Iiwge25vZGVJZDogdGFy
Z2V0RWxlbWVudElkLCB0eXBlOiAibm9kZS1yZW1vdmVkIn0pOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiBmaW5hbENv
bnRhaW5lcklkfSk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7ICAgICAgICAKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhw
cmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5h
YmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBkZjMwMTRmLi4yYjViODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNl
Lmg6CisgICAgICAgIFdoZW4gZGlzY29ubmVjdGluZyBhZ2VudHMsIHByb3ZpZGUgYSBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIGZvcgorICAgICAgICB0aGUgZGlzY29ubmVjdGlvbi4gSXQgY291
bGQgYmUgdGhhdCBhbiBpbnNwZWN0b3IgZnJvbnRlbmQgaXMganVzdAorICAgICAgICBkaXNjb25u
ZWN0aW5nIG9yIHRoYXQgdGhlIGluc3BlY3RlZCBvYmplY3QgaXMgZ29pbmcgYXdheSBlbnRpcmVs
eQorICAgICAgICBhbmQgd2UgY2FuIGF2b2lkIGRvaW5nIHNvbWUgd29yay4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6On5KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUpOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3RJbnRlcm5hbCk6CisgICAgICAgIFBhc3Mg
ZGlmZmVyZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdHMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQWdlbnQuaDoKKyAgICAgICAgUGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIGFyb3Vu
ZCB3aGVyZSBuZWVkZWQuCisKIDIwMTQtMDEtMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTIHdoaXRlc3BhY2UgZGVmaW5pdGlvbiBmb3Ig
Y2hhbmdlcyBpbiBVbmljb2RlIDYuMwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmgKaW5kZXggMjBhZDcxZi4uM2M1NjlkNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oCkBAIC0zNCwxMiArMzQsMTcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bDsKIAorZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHsKKyAgICBJbnNwZWN0
ZWRPYmplY3RCZWluZ0Rlc3Ryb3llZCwKKyAgICBGcm9udGVuZERpc2Nvbm5lY3RlZAorfTsKKwog
Y2xhc3MgSW5zcGVjdG9yQWdlbnRCYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JBZ2VudEJhc2UoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNjYXJkQWdlbnQoKSB7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKaW5k
ZXggMjAzYzhmNi4uZTBkOWVkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCkBAIC00OCwxMCArNDgs
MTAgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmUKICAgICAgICAgbV9hZ2VudHNbaV0tPmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChmcm9udGVuZENoYW5uZWwsIGJhY2tlbmREaXNwYXRjaGVy
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hZ2VudHMuc2l6ZSgpOyBpKyspCi0gICAgICAgIG1f
YWdlbnRzW2ldLT53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworICAgICAgICBtX2Fn
ZW50c1tpXS0+d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5OjpkaXNjYXJkQWdlbnRzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgK
aW5kZXggMmU4OTAzOS4uMTdkNjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgKQEAgLTM0LDYgKzM0LDcg
QEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbnNwZWN0b3JBZ2VudEJhc2U7CiBjbGFz
cyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbDsKK2VudW0gY2xhc3MgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjsKIAogY2xhc3MgSlNf
RVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQWdlbnRSZWdpc3RyeSB7CiBwdWJsaWM6CkBAIC00Miw3
ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVj
dG9yQWdlbnRCYXNlPik7CiAKICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopOwot
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29u
KTsKICAgICB2b2lkIGRpc2NhcmRBZ2VudHMoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3NDYyYWFkLi5kN2I0NmQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC02OCwxMiArNjgsMTIgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwKICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoZnJvbnRlbmRDaGFubmVsLCBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmdl
dCgpKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZCgpCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewog
ICAgIGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgbV9hZ2Vu
dHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1faW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX2luc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaAppbmRleCBmZjQxYjU5Li5jNGZiZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIH5KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFz
b24pOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYp
OwogCiAgICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggNjliYTVlYi4uZmNl
ZTQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEluc3BlY3Rv
ckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiBmcm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKaW5kZXggOTQz
ZWYxNi4uYzdkYzliYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNv
bikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuY3BwCmluZGV4IGM5MzNhYTYuLjcwZDNhM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQog
CiAjaW5jbHVkZSAiQVBJU2hpbXMuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudEJhc2UuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3Rvci5oIgpAQCAtNDUsNyArNDYsNyBA
QCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZShKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjp+SlNH
bG9iYWxPYmplY3REZWJ1Z2dhYmxlKCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVy
KQotICAgICAgICBkaXNjb25uZWN0KCk7CisgICAgICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ryb3llZCk7CiB9
CiAKIFN0cmluZyBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6Om5hbWUoKSBjb25zdApAQCAtNjUs
OSArNjYsMTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwKIAogdm9pZCBKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoKQogeworICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7Cit9CisKK3ZvaWQg
SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNjb25uZWN0SW50ZXJuYWwoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbiByZWFzb24pCit7CiAgICAgQVBJRW50cnlTaGltIGVudHJ5U2hpbSgmbV9n
bG9iYWxPYmplY3Qudm0oKSk7CiAKLSAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlzY29ubmVjdEZyb250
ZW5kKHJlYXNvbik7CiAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyID0gbnVsbHB0cjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dERlYnVnZ2FibGUuaAppbmRleCBhYWZmMTk5Li5jZjNlZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaApA
QCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBJbnNwZWN0b3Igewor
ZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOworfQorCiBuYW1lc3BhY2UgSlND
IHsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkBAIC01Miw2ICs1Niw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZUZyb250ZW5kKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9pZCBkaXNjb25uZWN0
SW50ZXJuYWwoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbik7CisK
ICAgICBKU0dsb2JhbE9iamVjdCYgbV9nbG9iYWxPYmplY3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyPiBtX2luc3BlY3Rv
ckNvbnRyb2xsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRlYWJjZTEuLmZjMjBjMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDEgQEAKKzIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxl
QWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgor
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHREZWJ1Z1NlcnZlcjo6U2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICBSZW1vdmUgbV9yZWNv
bXBpbGVUaW1lciBhbmQgdGhlIHJlY29tcGlsZSBzb29uIGZ1bmN0aW9uLgorICAgICAgICBXZSBj
YW4ganVzdCByZWNvbXBpbGUgaW1tZWRpYXRlbHkgaW4gYWxsIGV4aXN0aW5nIGNhc2VzLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZFJlbW92ZUxhc3RM
aXN0ZW5lcik6CisgICAgICAgIEFkZCBhICJkaWRBZGRGaXJzdExpc3RlbmVyIiB0byBtYXRjaCAi
ZGlkUmVtb3ZlTGFzdExpc3RlbmVyIi4KKyAgICAgICAgT25seSByZWNvbXBpbGUgZnVuY3Rpb25z
IHdoZW4gd2UgYXR0YWNoIHRoZSBkZWJ1Z2dlciBhbmQgd2hlbgorICAgICAgICB3ZSBkZXRhY2gg
dGhlIGxhc3QgbGlzdGVuZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVn
U2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIFNhbWUgdGhpbmcuIEFs
c28gcmVhcnJhbmdlIHRoZSBmdW5jdGlvbnMgdG8gcmVhZCBiZXR0ZXIuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIFVzZSB0aGUgZGly
ZWN0IHJlY29tcGlsZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZW1vdmVkICJzb29uIiB2ZXJz
aW9uLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIFVwZGF0ZSBkaXNjb25u
ZWN0RnJvbnRlbmQgc3ltYm9sLgorCisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpj
bG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzY29ubmVjdEZyb21Xb3JrZXJH
bG9iYWxTY29wZUluc3BlY3RvclRhc2spOgorICAgICAgICBJbmNsdWRlIGFuIEluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb24gd2hlbiBjYWxsaW5nIGRpc2Nvbm5lY3RGcm9udGVuZC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIElm
IHRoZSBkaXNjb25uZWN0IHJlYXNvbiBpcyB0aGUgcGFnZSB3aWxsIGJlIGRlc3Ryb3llZCwgZG9u
J3QgcmVjb21waWxlIHdoZW4gZGlzY29ubmVjdGluZy4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRp
c2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICBJZiB0aGUgZGlzY29ubmVjdCByZWFz
b24gaXMgdGhlIHBhZ2Ugd2lsbCBiZSBkZXN0cm95ZWQsIGRvbid0IHJlY29tcGlsZSB3aGVuIGRp
c2Nvbm5lY3RpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKToKKyAgICAg
ICAgUGFzcyBkaWZmZXJlbnQgcmVhc29ucyBmb3IgdGhlIGRpZmZlcmVudCBkaXNjb25uZWN0IHJl
YXNvbnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5o
OgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIFBhc3MgZGlmZmVyZW50IHJlYXNvbnMg
Zm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdCByZWFzb25zLgorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5wdXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvck1lbW9yeUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvcldvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckRl
YnVnZ2VyQWdlbnQ6OnN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICog
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0
UmVhc29uIHBhcmFtLgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+CiAKICAgICAgICAgQVg6IERvIG5vdCByZXR1cm4gYW4gYWNjZXNzaWJsZSBuYW1l
IGZvciBhbiBvYmplY3QganVzdCBiZWNhdXNlIGl0IGhhcyB0YWJpbmRleD0wCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDg4NGZkMmYuLmQzMjllYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0y
NzYzLDcgKzI3NjMsNyBAQCBfX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQyNXNlbGVjdENv
bG9ySW5Db2xvckNob29zZXJFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNs
aWVudDMxZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxN0luc3BlY3RvckNvdW50ZXJzMTJjb3VudGVyVmFsdWVFTlMw
XzExQ291bnRlclR5cGVFCiBfX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxNWNvbm5l
Y3RGcm9udGVuZEVQTjlJbnNwZWN0b3IyNEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbEUKLV9fWk43
V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5kRXYKK19fWk43
V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5kRU45SW5zcGVj
dG9yMjVJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uRQogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMThzZXRQcm9maWxlckVuYWJsZWRFYgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMjVldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kRWxSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI2c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFTlN0M19fMTEwdW5pcXVlX3B0cklOU18yM0luc3BlY3RvckZyb250ZW5kQ2xpZW50RU5TMV8x
NGRlZmF1bHRfZGVsZXRlSVMzX0VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDFjZWM3YjMuLjg0MDY3OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmNwcApAQCAtOTQsMTMgKzk0LDE1IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjph
ZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSogcGFnCiAgICAg
T3duUHRyPExpc3RlbmVyU2V0PiYgbGlzdGVuZXJzID0gbV9wYWdlTGlzdGVuZXJzTWFwLmFkZChw
YWdlLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFsaXN0ZW5lcnMpCiAgICAg
ICAgIGxpc3RlbmVycyA9IGFkb3B0UHRyKG5ldyBMaXN0ZW5lclNldCk7CisKKyAgICBib29sIHdh
c0VtcHR5ID0gbGlzdGVuZXJzLT5pc0VtcHR5KCk7CiAgICAgbGlzdGVuZXJzLT5hZGQobGlzdGVu
ZXIpOwogCi0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgcGFnZS0+c2V0
RGVidWdnZXIodGhpcyk7CisgICAgaWYgKHdhc0VtcHR5KQorICAgICAgICBkaWRBZGRGaXJzdExp
c3RlbmVyKHBhZ2UpOwogfQogCi12b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlz
dGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBhZ2UpCit2b2lkIFBh
Z2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciog
bGlzdGVuZXIsIFBhZ2UqIHBhZ2UsIGJvb2wgc2tpcFJlY29tcGlsZSkKIHsKICAgICBBU1NFUlRf
QVJHKGxpc3RlbmVyLCBsaXN0ZW5lcik7CiAgICAgQVNTRVJUX0FSRyhwYWdlLCBwYWdlKTsKQEAg
LTExMSwyMCArMTEzLDE3IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0
ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSoKIAogICAgIExpc3RlbmVy
U2V0KiBsaXN0ZW5lcnMgPSBpdC0+dmFsdWUuZ2V0KCk7CiAgICAgbGlzdGVuZXJzLT5yZW1vdmUo
bGlzdGVuZXIpOworCiAgICAgaWYgKGxpc3RlbmVycy0+aXNFbXB0eSgpKSB7CiAgICAgICAgIG1f
cGFnZUxpc3RlbmVyc01hcC5yZW1vdmUoaXQpOwotICAgICAgICBkaWRSZW1vdmVMYXN0TGlzdGVu
ZXIocGFnZSk7CisgICAgICAgIGRpZFJlbW92ZUxhc3RMaXN0ZW5lcihwYWdlLCBza2lwUmVjb21w
aWxlKTsKICAgICB9CiB9CiAKIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucygpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNv
bW1vblZNKCkpOwotICAgIC8vIElmIEphdmFTY3JpcHQgc3RhY2sgaXMgbm90IGVtcHR5IHBvc3Rw
b25lIHJlY29tcGlsYXRpb24uCi0gICAgaWYgKEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5lbnRy
eVNjb3BlKQotICAgICAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBlbHNl
Ci0gICAgICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKSk7CisgICAgRGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKEpTRE9N
V2luZG93Ojpjb21tb25WTSgpKTsKIH0KIAogU2NyaXB0RGVidWdTZXJ2ZXI6Okxpc3RlbmVyU2V0
KiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtMTYxLDE1ICsxNjAsMjUgQEAgdm9pZCBQYWdl
U2NyaXB0RGVidWdTZXJ2ZXI6OmRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKICAgICAgICAgc2V0SmF2YVNjcmlwdFBhdXNlZChwYWdlLT5ncm91cCgpLCBmYWxz
ZSk7CiB9CiAKLXZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVu
ZXIoUGFnZSogcGFnZSkKK3ZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRBZGRGaXJzdExp
c3RlbmVyKFBhZ2UqIHBhZ2UpCit7CisgICAgLy8gU2V0IGRlYnVnZ2VyIGJlZm9yZSByZWNvbXBp
bGluZyB0byBnZXQgc291cmNlUGFyc2VkIGNhbGxiYWNrcy4KKyAgICBwYWdlLT5zZXREZWJ1Z2dl
cih0aGlzKTsKKyAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOworfQorCit2b2lkIFBhZ2VT
Y3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2UsIGJvb2wg
c2tpcFJlY29tcGlsZSkKIHsKICAgICBBU1NFUlQocGFnZSk7CiAKICAgICBpZiAobV9wYXVzZWRQ
YWdlID09IHBhZ2UpCiAgICAgICAgIG1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyA9IHRy
dWU7CiAKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBwYWdlLT5zZXRE
ZWJ1Z2dlcigwKTsKKyAgICAvLyBDbGVhciBkZWJ1Z2dlciBiZWZvcmUgcmVjb21waWxpbmcgYmVj
YXVzZSB3ZSBkbyBub3QgbmVlZCBzb3VyY2VQYXJzZWQgY2FsbGJhY2tzLgorICAgIHBhZ2UtPnNl
dERlYnVnZ2VyKG51bGxwdHIpOworCisgICAgaWYgKCFza2lwUmVjb21waWxlKQorICAgICAgICBy
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogfQogCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZl
cjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCBlZDdmMjRlLi41NjdlZDkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlciYgc2hhcmVkKCk7CiAKICAgICB2b2lkIGFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlz
dGVuZXIqLCBQYWdlKik7Ci0gICAgdm9pZCByZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3Rl
bmVyKiwgUGFnZSopOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5l
ciosIFBhZ2UqLCBib29sIHNraXBSZWNvbXBpbGUpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY29t
cGlsZUFsbEpTRnVuY3Rpb25zKCkgb3ZlcnJpZGU7CiAKQEAgLTY1LDcgKzY1LDggQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpOwogCi0gICAg
dm9pZCBkaWRSZW1vdmVMYXN0TGlzdGVuZXIoUGFnZSopOworICAgIHZvaWQgZGlkQWRkRmlyc3RM
aXN0ZW5lcihQYWdlKik7CisgICAgdm9pZCBkaWRSZW1vdmVMYXN0TGlzdGVuZXIoUGFnZSosIGJv
b2wgc2tpcFJlY29tcGlsZSk7CiAKICAgICB2b2lkIHNldEphdmFTY3JpcHRQYXVzZWQoY29uc3Qg
UGFnZUdyb3VwJiwgYm9vbCBwYXVzZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdFBhdXNlZChQ
YWdlKiwgYm9vbCBwYXVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGRhYzUyYTIuLjQwM2RmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJKYXZhU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJTb3VuZC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVk
ZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlckNh
bGxGcmFtZS5oPgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgpAQCAtNTcsNyAr
NTgsNiBAQCBTY3JpcHREZWJ1Z1NlcnZlcjo6U2NyaXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0luV29y
a2VyVGhyZWFkKQogICAgIDogRGVidWdnZXIoaXNJbldvcmtlclRocmVhZCkKICAgICAsIG1fZG9u
ZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyh0cnVlKQogICAgICwgbV9jYWxsaW5nTGlzdGVuZXJz
KGZhbHNlKQotICAgICwgbV9yZWNvbXBpbGVUaW1lcih0aGlzLCAmU2NyaXB0RGVidWdTZXJ2ZXI6
OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtMzEzLDE2ICsz
MTMsNiBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpoYW5kbGVQYXVzZShEZWJ1Z2dlcjo6UmVh
c29uRm9yUGF1c2UsIEpTR2xvYmFsT2JqZWN0KiB2bQogICAgIGRpc3BhdGNoRnVuY3Rpb25Ub0xp
c3RlbmVycygmU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRGlkQ29udGludWUsIHZtRW50cnlH
bG9iYWxPYmplY3QpOwogfQogCi12b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9uc1Nvb24oKQotewotICAgIG1fcmVjb21waWxlVGltZXIuc3RhcnRPbmVTaG90KDAp
OwotfQotCi12b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Rp
bWVyRmlyZWQoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+JikKLXsKLSAgICByZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucygpOwotfQotCiBjb25zdCBWZWN0b3I8U2NyaXB0QnJlYWtwb2ludEFjdGlvbj4m
IFNjcmlwdERlYnVnU2VydmVyOjpnZXRBY3Rpb25zRm9yQnJlYWtwb2ludChKU0M6OkJyZWFrcG9p
bnRJRCBicmVha3BvaW50SUQpCiB7CiAgICAgQVNTRVJUKGJyZWFrcG9pbnRJRCAhPSBKU0M6Om5v
QnJlYWtwb2ludElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1
Z1NlcnZlci5oCmluZGV4IGZhMGVlNWQuLjkzNTQwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtMzQsNyArMzQsNiBAQAogCiAjaW5j
bHVkZSAiU2NyaXB0QnJlYWtwb2ludC5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnTGlzdGVuZXIu
aCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdE9iamVjdC5o
PgogI2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTU5LDcgKzU4LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludChK
U0M6OkJyZWFrcG9pbnRJRCk7CiAgICAgdm9pZCBjbGVhckJyZWFrcG9pbnRzKCk7CiAKLSAgICB2
b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOwogICAgIHZpcnR1YWwgdm9pZCByZWNv
bXBpbGVBbGxKU0Z1bmN0aW9ucygpID0gMDsKIAogICAgIGNvbnN0IFZlY3RvcjxTY3JpcHRCcmVh
a3BvaW50QWN0aW9uPiYgZ2V0QWN0aW9uc0ZvckJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50SUQp
OwpAQCAtMTA5LDEyICsxMDcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVQ
YXVzZShKU0M6OkRlYnVnZ2VyOjpSZWFzb25Gb3JQYXVzZSwgSlNDOjpKU0dsb2JhbE9iamVjdCop
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlEb25lUHJvY2Vzc2luZ0Rl
YnVnZ2VyRXZlbnRzKCkgb3ZlcnJpZGUgZmluYWw7CiAKLSAgICB2b2lkIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zVGltZXJGaXJlZChUaW1lcjxTY3JpcHREZWJ1Z1NlcnZlcj4mKTsKLQogICAgIHVu
c2lnbmVkIG1faGl0Q291bnQ7CiAgICAgYm9vbCBtX2NhbGxpbmdMaXN0ZW5lcnM7CiAgICAgQnJl
YWtwb2ludElEVG9BY3Rpb25zTWFwIG1fYnJlYWtwb2ludElEVG9BY3Rpb25zOwotICAgIFRpbWVy
PFNjcmlwdERlYnVnU2VydmVyPiBtX3JlY29tcGlsZVRpbWVyOwogCiAgICAgZnJpZW5kIGNsYXNz
IERlYnVnZ2VyQ2FsbEZyYW1lU2NvcGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGJlYzllNTcuLjY5
NTFiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTU1LDEwICs1NSwyNyBAQCB2b2lkIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lcikK
ICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9saXN0ZW5l
cnMuaXNFbXB0eSgpKQotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+YXR0
YWNoRGVidWdnZXIodGhpcyk7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1w
dHkoKTsKICAgICBtX2xpc3RlbmVycy5hZGQobGlzdGVuZXIpOwotICAgIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zKCk7CisKKyAgICBpZiAod2FzRW1wdHkpIHsKKyAgICAgICAgbV93b3JrZXJHbG9i
YWxTY29wZS0+c2NyaXB0KCktPmF0dGFjaERlYnVnZ2VyKHRoaXMpOworICAgICAgICByZWNvbXBp
bGVBbGxKU0Z1bmN0aW9ucygpOworICAgIH0KK30KKwordm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wg
c2tpcFJlY29tcGlsZSkKK3sKKyAgICBpZiAoIWxpc3RlbmVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2xpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIpOworCisgICAgaWYgKG1fbGlzdGVuZXJz
LmlzRW1wdHkoKSkgeworICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+ZGV0
YWNoRGVidWdnZXIodGhpcyk7CisgICAgICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAg
ICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CisgICAgfQogfQogCiB2b2lkIFdvcmtlclNj
cmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpCkBAIC02NiwyMSArODMs
NyBAQCB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9u
cygpCiAgICAgSlNDOjpWTSogdm0gPSBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+dm0o
KTsKIAogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwotICAgIC8vIElmIEphdmFTY3Jp
cHQgc3RhY2sgaXMgbm90IGVtcHR5IHBvc3Rwb25lIHJlY29tcGlsYXRpb24uCi0gICAgaWYgKHZt
LT5lbnRyeVNjb3BlKQotICAgICAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAg
ICBlbHNlCi0gICAgICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKHZt
KTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2Ny
aXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCi17Ci0gICAgaWYgKCFsaXN0ZW5lcikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9saXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKLSAgICBpZiAo
bV9saXN0ZW5lcnMuaXNFbXB0eSgpKQotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3Jp
cHQoKS0+ZGV0YWNoRGVidWdnZXIodGhpcyk7CisgICAgSlNDOjpEZWJ1Z2dlcjo6cmVjb21waWxl
QWxsSlNGdW5jdGlvbnModm0pOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpy
dW5FdmVudExvb3BXaGlsZVBhdXNlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCBiZjYxNmFhLi43NjJkMjE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVn
U2VydmVyLmgKQEAgLTQ1LDIwICs0NSwxNyBAQCBwdWJsaWM6CiAgICAgV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXIoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcmKTsKICAgICB+V29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihTY3JpcHREZWJ1
Z0xpc3RlbmVyKik7Ci0gICAgdm9pZCByZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVy
Kik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiwgYm9vbCBz
a2lwUmVjb21waWxlKTsKIAogICAgIHZvaWQgaW50ZXJydXB0QW5kUnVuVGFzayhQYXNzT3duUHRy
PFNjcmlwdERlYnVnU2VydmVyOjpUYXNrPik7CiAKLSAgICB2b2lkIHJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgdmlydHVhbCBMaXN0ZW5lclNldCog
Z2V0TGlzdGVuZXJzRm9yR2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlk
ZSB7IHJldHVybiAmbV9saXN0ZW5lcnM7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoSlND
OjpKU0dsb2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250
aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyB9Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNDb250ZW50U2NyaXB0KEpTQzo6RXhlY1N0YXRlKikgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpIG92ZXJy
aWRlOwogCiAgICAgV29ya2VyR2xvYmFsU2NvcGUqIG1fd29ya2VyR2xvYmFsU2NvcGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwCmluZGV4IDZjMzRiYjIuLjJhN2E2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwCiAgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVCYWNrZW5kRGlzcGF0
Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkK
K3ZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmgKaW5kZXggNGI4NjJhYS4uNTJkOGUwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
aApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZvaWQgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0
YXR1cyhGcmFtZSopOwogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYzA4NDk5MC4u
MDFhNTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmQKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ1NTQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0
ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24p
CiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmgKaW5kZXggZGNiYTkxYS4uMTBiNGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBmb3JjZVBzZXVkb1N0YXRlKEVsZW1lbnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlw
ZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCBiMzA2ZmFhLi45NTI1
OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNB
Z2VudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnQKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ2FudmFzQmFja2VuZERpc3BhdGNoZXI6OmNy
ZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggM2JjN2IxMS4uYTlhMzhlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKQEAgLTY2LDcg
KzY2LDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JDYW52YXNBZ2VudCgpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIq
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJhbWUqKTsKICAgICB2b2lkIGZyYW1lRGV0YWNoZWQo
RnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHAKaW5kZXggYTI0MzI1YS4uNzAxYWVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTEzMCw3ICsxMzAs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbgogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJ
bnNwZWN0b3JDb25zb2xlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hl
ciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5j
bGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5oCmluZGV4IDVmOThjMzYuLjYyM2JjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SUQsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpFeGVjU3RhdGUqID0gbnVsbHB0ciwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGE2ZWI1MTAuLmUzOWE2
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+SW5zcGVjdG9y
Q29udHJvbGxlcigpCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURl
c3Ryb3llZCgpCiB7Ci0gICAgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgZGlzY29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZE9iamVjdEJlaW5nRGVz
dHJveWVkKTsKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY29ubmVjdCgpOwogICAg
IG1faW5zcGVjdG9yQ2xpZW50LT5pbnNwZWN0b3JEZXN0cm95ZWQoKTsKICAgICBtX2luc3BlY3Rv
ckNsaWVudCA9IG51bGxwdHI7CkBAIC0yNjYsMTIgKzI2NiwxMiBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGZyb250
ZW5kQ2hhbgogI2VuZGlmCiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5k
KEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGlmICghbV9pbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fYWdlbnRzLndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXItPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9z
ZSgpCiB7CiAgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0
dXJuOwotICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7CiAgICAgbV9p
bnNwZWN0b3JDbGllbnQtPmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggODllOTc4MC4u
NDA1ZTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbW90ZUZyb250
ZW5kKCkgY29uc3Q7CiAKICAgICB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0
UmVhc29uKTsKICAgICB2b2lkIHNldFByb2Nlc3NJZChsb25nKTsKIAogI2lmIEVOQUJMRShSRU1P
VEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggNzJiZjg1NS4uZjI0Y2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmQKICAgICAgICAgZm9jdXNOb2RlKCk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggYWIyOTk5MC4uMTM0NWJjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTExMiw3ICsxMTIsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyB0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJl
YXNvbikgb3ZlcnJpZGU7CiAKICAgICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKICAg
ICB2b2lkIHJlc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggN2Y5MjFhMy4uOTdiMjkxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yCiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNo
ZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50LmgKaW5kZXggYTU4ZjQ4ZC4uYzMyMzc4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC04Miw3
ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGJv
b2wgaXNET01FdmVudCwgY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuY3BwCmluZGV4IDlmNTI5YWIuLjI1YzZmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckRPTVN0b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tl
bmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKaW5kZXggYzYyYWE3MS4uNWFkMmI3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAg
dmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDMx
YTYxZDguLjI4NjFlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZybwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEYXRhYmFzZUJh
Y2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12
b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkKK3ZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXgg
NmZiNzEwOC4uMzIyOTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IDZlOTBiMzQuLjk2M2FjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk1LDEyICs5NSwx
MiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiAgICAgbV9lbmFibGVk
ID0gdHJ1ZTsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3Zv
aWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiB7CiAgICAgbV9qYXZhU2NyaXB0QnJlYWtwb2ludHMuY2xlYXIoKTsKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckRlYnVnZ2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBz
dG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKTsKKyAgICBzdG9wTGlzdGVuaW5nU2NyaXB0
RGVidWdTZXJ2ZXIoaXNCZWluZ0Rlc3Ryb3llZCk7CiAgICAgY2xlYXJSZXNvbHZlZEJyZWFrcG9p
bnRTdGF0ZSgpOwogCiAgICAgaWYgKG1fbGlzdGVuZXIpCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBpZiAo
IW1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzYWJsZSgpOworICAgIGRpc2Fi
bGUoZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJv
bnRlbmRDaGFubmVsLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciogYmFja2VuZERpc3BhdGNo
ZXIpCkBAIC0xMzMsMTIgKzEzMywxMyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVyOjpj
cmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIAotICAgIGRpc2FibGUoKTsK
KyAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24gPT0gSW5zcGVjdG9yRGlzY29ubmVjdFJl
YXNvbjo6SW5zcGVjdGVkT2JqZWN0QmVpbmdEZXN0cm95ZWQ7CisgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50
c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgYWN0aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggZjk5YWEzOC4uYWRiNzc5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1BhdXNlZCgpOwogICAgIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSk7CkBAIC0xMjgs
MTQgKzEyOCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcihib29sIGlzQmVp
bmdEZXN0cm95ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAgICAgSW5zcGVjdG9yOjpJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcigpIGNvbnN0IHsgcmV0dXJu
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29s
IGlzQmVpbmdEZXN0cm95ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVzZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29udGludWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENsZWFyR2xvYmFsT2Jq
ZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmNwcAppbmRleCA1NDgzMGJjLi43Nzc1MzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG8KICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXI6OmNy
ZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKaW5kZXggOTgw
NGZlNC4uYzk0ODIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHVpZCkgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24p
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJp
bmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4
IGRiNDUxZmQuLmFmM2M1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTc0LDcgKzU3NCw3IEBAIHZvaWQgSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckluZGV4
ZWREQkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwog
fQogCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZCgpCit2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAppbmRleCBhZTYxOTg4Li5kMDcxYTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaApA
QCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckluZGV4ZWREQkFnZW50KCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4KICAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKaW5kZXggYzRiODc4OS4uYzQ1YTA0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50
LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZQogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnB1dEJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUo
YmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9ySW5wdXRBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNv
bikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRleCA4OGViOTMzLi5mMTUy
YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50
LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JJbnB1dEFnZW50KCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIHNp
bXVsYXRpbmcgaW5wdXQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoS2V5RXZlbnQoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBk
b3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25zdCBTdHJpbmcqIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNvbnN0IGludCogd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBjb25zdCBp
bnQqIG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBjb25zdCBib29sKiBpc0tl
eXBhZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggYzBm
YzI2MC4uMDg2ZTNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckxheWVyVHJlZUJh
Y2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12
b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZCgpCit2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCmlu
ZGV4IDcyMWIzMTAuLjc1NjFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwq
LCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNldCgpOwog
CiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGI3NGMzNTMuLjE2NGQ5MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50
LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udAogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JNZW1vcnlCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRl
KGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JNZW1vcnlB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJl
YXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCmluZGV4IGM1YzEwYWYu
LjEyZjNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1v
cnlBZ2VudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JNZW1vcnlBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRET01Db3VudGVy
cyhFcnJvclN0cmluZyosIGludCogZG9jdW1lbnRzLCBpbnQqIG5vZGVzLCBpbnQqIGpzRXZlbnRM
aXN0ZW5lcnMpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGU0N2ZmZGQuLjBlZDBlMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zNjIsNyArMzYy
LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW4KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
SW5zcGVjdG9yUGFnZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCA3
NzQxNTNhLi44M2QxMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW5zcGVj
dG9yIENvbnRyb2xsZXIgQVBJCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENyb3NzLWFnZW50cyBBUEkKICAgICBQ
YWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggMWYyNWEzZS4uMTEzZGI3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCByZWNvbXBpbGVTY3JpcHQoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgUGFnZVNj
cmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsK
KyAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucygpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2ZpbGluZyhjb25z
dCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZQpAQCAtMjAyLDIzICsyMDIsMjIgQEAgdm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKiBy
ZXN1bHQpCiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5n
KikKIHsKLSAgICBpZiAoZW5hYmxlZCgpKQotICAgICAgICByZXR1cm47CiAgICAgZW5hYmxlKGZh
bHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nKikKIHsKLSAgICBkaXNhYmxlKCk7CisgICAgZGlzYWJsZShmYWxzZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6OmRpc2FibGUoYm9vbCBza2lwUmVjb21waWxlKQogewogICAgIGlmICghbV9lbmFibGVk
KQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7CiAgICAgbV9wcm9maWxl
SGVhZGVyc1JlcXVlc3RlZCA9IGZhbHNlOwotICAgIHJlY29tcGlsZVNjcmlwdCgpOworICAgIGlm
ICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlU2NyaXB0KCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSkKQEAgLTMz
MywxNCArMzMyLDE1IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IEluc3BlY3RvclByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNr
ZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQcm9maWxlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCiAgICAgc3RvcCgpOwotICAgIEVycm9yU3Ry
aW5nIGVycm9yOwotICAgIGRpc2FibGUoJmVycm9yKTsKKworICAgIGJvb2wgc2tpcFJlY29tcGls
ZSA9IHJlYXNvbiA9PSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RC
ZWluZ0Rlc3Ryb3llZDsKKyAgICBkaXNhYmxlKHNraXBSZWNvbXBpbGUpOwogfQogCiB2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KEVycm9yU3RyaW5nKikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IDJhMmI3ZmIu
LmQzNzkzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
cm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0KEVycm9yU3RyaW5nKiA9IG51bGxwdHIpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKEVycm9yU3RyaW5nKiA9IG51bGxwdHIpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaXNh
YmxlKCk7CisgICAgdm9pZCBkaXNhYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgdm9pZCBl
bmFibGUoYm9vbCBza2lwUmVjb21waWxlKTsKICAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2VuYWJsZWQ7IH0KICAgICBTdHJpbmcgZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9m
aWxlTmFtZShib29sIGluY3JlbWVudFByb2ZpbGVOdW1iZXIgPSBmYWxzZSk7CkBAIC05Miw3ICs5
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUHJvZmlsZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgdHlwZSwgaW50IHVpZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBy
ZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVSZWNvcmRCdXR0b24oYm9v
bCBpc1Byb2ZpbGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggMzI0NGQ3ZS4uNzgzZDAxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAt
ODMsNyArODMsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIgPSBJbnNwZWN0b3JOZXR3b3JrQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5k
RGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
KQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaAppbmRleCBjOTUwYjcxLi5kMmNhMmEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTgxLDcg
KzgxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwog
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBlNGE0ZDU3Li5mOGE2YzM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBA
IC03Myw3ICs3Myw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IEluc3BlY3RvclRpbWVsaW5lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNr
ZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCAyZjRmN2RlLi40YzVlZDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTEz
Miw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIG1h
eENhbGxTdGFja0RlcHRoLCBjb25zdCBib29sKiBpbmNsdWRlRG9tQ291bnRlcnMpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAppbmRleCAw
ZmJkYmRkLi5iODEwOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEluc3BlY3Rvcldv
cmtlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JGcm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JXb3JrZXJCYWNrZW5k
RGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX3Nob3VsZFBhdXNlRGVkaWNhdGVkV29y
a2VyT25TdGFydCA9IGZhbHNlOwogICAgIGRpc2FibGUobnVsbHB0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDNhOTUxNDQuLjc1
M2M5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yV29ya2VyQWdl
bnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNv
bikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24KICAgICBib29sIHNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFydCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXgg
MGMwMThiZS4uNWE3MzVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURl
YnVnZ2VyQWdlbnQuY3BwCkBAIC02NSw5ICs2NSw5IEBAIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6
OmVuYWJsZSgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRQYWdlRGVidWdnZXJBZ2Vu
dCh0aGlzKTsKIH0KIAotdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIFBh
Z2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsKLSAgICBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCk7CisgICAgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlzYWJsZShpc0JlaW5nRGVzdHJveWVkKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldFBhZ2VEZWJ1Z2dlckFnZW50KG51bGxwdHIpOwogfQogCkBAIC03Niw5ICs3Niw5IEBA
IHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIo
KQogICAgIHNjcmlwdERlYnVnU2VydmVyKCkuYWRkTGlzdGVuZXIodGhpcywgbV9wYWdlQWdlbnQt
PnBhZ2UoKSk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnN0b3BMaXN0ZW5pbmdTY3Jp
cHREZWJ1Z1NlcnZlcigpCit2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKQogewotICAgIHNjcmlwdERlYnVn
U2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9wYWdlQWdlbnQtPnBhZ2UoKSk7CisgICAg
c2NyaXB0RGVidWdTZXJ2ZXIoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBtX3BhZ2VBZ2VudC0+cGFn
ZSgpLCBpc0JlaW5nRGVzdHJveWVkKTsKIH0KIAogUGFnZVNjcmlwdERlYnVnU2VydmVyJiBQYWdl
RGVidWdnZXJBZ2VudDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAppbmRleCAwYTU3OWFjLi40ZGQxNzMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaApAQCAtNTQsMTEgKzU0
LDExIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVy
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1Nl
cnZlcihib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFnZVNj
cmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1bm11dGVD
b25zb2xlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAKaW5kZXggZDNmNmY1Ni4uMDM0MjY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFBh
Z2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyb250ZW5kQwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JSdW50
aW1lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KQordm9pZCBQYWdlUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCBmMGNiYTQ0Li5lNjJjMzNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTU0LDcg
KzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNTU4
ZjljYS4uOGYzMzc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcApAQCAtMTIyLDkgKzEyMiw5IEBAIHZvaWQgV29ya2VyRGVidWdnZXJB
Z2VudDo6c3RhcnRMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpCiAgICAgc2NyaXB0RGVidWdT
ZXJ2ZXIoKS5hZGRMaXN0ZW5lcih0aGlzKTsKIH0KIAotdm9pZCBXb3JrZXJEZWJ1Z2dlckFnZW50
OjpzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQordm9pZCBXb3JrZXJEZWJ1Z2dlckFn
ZW50OjpzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVk
KQogewotICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAg
c2NyaXB0RGVidWdTZXJ2ZXIoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBpc0JlaW5nRGVzdHJveWVk
KTsKIH0KIAogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OnNj
cmlwdERlYnVnU2VydmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5oCmluZGV4IGVhZGQ3NDIuLjhhMDMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgaW50ZXJydXB0QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5k
cyhXb3JrZXJUaHJlYWQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1Njcmlw
dERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdT
Y3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVu
aW5nU2NyaXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggY2Q2OTg1NC4uZWJiY2ZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsCiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
Ojp+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5yZXNldCgpOwotICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rl
c3Ryb3llZCk7CiB9CiAKIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZy
b250ZW5kKCkKQEAgLTEyNywxMSArMTI3LDEyIEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQobV9mcm9udGVuZENoYW5uZWwuZ2V0KCksIG1fYmFja2VuZERpc3BhdGNoZXIuZ2V0
KCkpOwogfQogCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9u
dGVuZCgpCit2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVu
ZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBpZiAoIW1fZnJvbnRl
bmRDaGFubmVsKQogICAgICAgICByZXR1cm47Ci0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKTsKKworICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKHJlYXNvbik7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgp
OwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKICAgICBtX2Zyb250ZW5kQ2hhbm5l
bCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBmZTZmZGE3Li43YjI0M2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAg
LTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIH5Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7
CiAKICAgICB2b2lkIGNvbm5lY3RGcm9udGVuZCgpOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250
ZW5kKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JE
aXNjb25uZWN0UmVhc29uKTsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChj
b25zdCBTdHJpbmcmKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lk
IHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1
bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50LmNwcAppbmRleCA5YjY0MGQ3Li42YzQwMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFdv
cmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbgogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JSdW50
aW1lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZCgpCit2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
UnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50LmgKaW5kZXggZTkwMjJiMi4uMDNlYWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+V29ya2VyUnVudGltZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gUHJvdG9jb2wg
Y29tbWFuZHMuCiAgICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAppbmRleCBjMWYyNjUyLi4xZTYwYmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkluc3BlY3RvckZvcndhcmRpbmcuaCIKICNpbmNsdWRlICJNYWluRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCkBAIC04NCw3ICs4NSw3IEBA
IHZvaWQgUGFnZURlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIGNoYW5uZWwpCiB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KCkKIHsK
ICAgICBJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyID0gbV9wYWdlLmlu
c3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpbnNwZWN0b3JDb250cm9sbGVyLmRpc2Nvbm5lY3RG
cm9udGVuZCgpOworICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29ubmVjdEZyb250ZW5kKElu
c3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBpbnNw
ZWN0b3JDb250cm9sbGVyLnNldEhhc1JlbW90ZUZyb250ZW5kKGZhbHNlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJlYjY5ZDkuLjQ3NDdkN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRlICJW
aWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUg
PGJ5dGVjb2RlL0NvZGVCbG9jay5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dEJhc2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpA
QCAtMTQ2NCw3ICsxNDY1LDggQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JG
cm9udGVuZCgpCiAgICAgQVNTRVJUKHBhZ2UpOwogICAgIEFTU0VSVChtX2Zyb250ZW5kV2luZG93
KTsKIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQo
KTsKKyAgICAvLyBUcmVhdCB0aGlzIGFzIGlmIHRoZSBwYWdlIHdlIGFyZSBpbnNwZWN0aW5nIGlz
IGNsb3NpbmcuCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ry
b3llZCk7CiAKICAgICBtX2Zyb250ZW5kQ2hhbm5lbC5yZWxlYXNlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggZDUwNGFkMi4u
M2U3YzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MjgsNyAr
NDI5LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y29ubmVjdFRvSW5zcGVjdG9yKFdv
cmtlckdsb2JhbFNjb3BlUHJveHk6OlBhZ2VJbnNwZWMKIHN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RG
cm9tV29ya2VyR2xvYmFsU2NvcGVJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGJvb2wpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
Y29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICBzdGF0aWNfY2FzdDxXb3JrZXJH
bG9iYWxTY29wZSo+KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29u
bmVjdEZyb250ZW5kKCk7CisgICAgc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihjb250
ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNw
ZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNDA3Zjk2Zi4uMjk1ZjY3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgIEluY2x1ZGUg
SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4KKwogMjAxNC0wMS0xOSAgUnl1YW4gQ2hvaSAgPHJ5
dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0sxXSBSZW1vdmUgYW5kIHJl
ZmFjdG9yIHRoZSBBUElzIHdoaWNoIHVzZSBzaW5nbGUgYW5kIGJhc2Uga2V5d29yZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVm
bC5jcHAKaW5kZXggY2ExOGY5Ni4uMzJlNDA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjEzLDcgKzIxNCw3IEBAIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQpCiB2b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wg
bm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKIHsKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29u
dHJvbGxlcikKLSAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgICAgICBFV0tQ
cml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6
RnJvbnRlbmREaXNjb25uZWN0ZWQpOwogCiAgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50KQogICAg
ICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IGY1NWU4ZGIuLjdmYTU4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyB0
aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3Bl
Y3RvcldpbmRvdyk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4K
KwogMjAxNC0wMS0yMiAgVGhpYWdvIGRlIEJhcnJvcyBMYWNlcmRhICA8dGhpYWdvLmxhY2VyZGFA
b3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbRUZMXVtHVEtdIEdldCBFRkwgYW5kIEdUSyBjb21w
aWxpbmcgd2l0aCBBQ0NFU1NJQklMSVRZIGRpc2FibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCBjZGFk
OGY3Li42NDdiMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5o
IgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTg5LDcgKzE5MCw3IEBAIHZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9vbCBub3Rp
ZnlJbnNwZWN0b3JDb250cm9sCiAgICAgfQogCiAgICAgaWYgKG5vdGlmeUluc3BlY3RvckNvbnRy
b2xsZXIpCi0gICAgICAgIGNvcmUobV9pbnNwZWN0ZWRXZWJWaWV3KS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgICAgICBjb3JlKG1faW5zcGVjdGVkV2Vi
VmlldyktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7CiAKICAg
ICBpZiAobV9pbnNwZWN0b3JDbGllbnQpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxl
YXNlRnJvbnRlbmRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzdlYWNmNS4uN2I2ZTQ1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2lu
ZG93Q29udHJvbGxlciBkZXN0cm95SW5zcGVjdG9yVmlldzpdKToKKyAgICAgICAgSW5jbHVkZSBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIyICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4IGZvciBpT1MgY2xpZW50cyBvZiBX
ZWJVSURlbGVnYXRlUHJpdmF0ZS5oLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDMyYTcyNzAuLmZkNmMwNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5h
bC5oIgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8YmluZGluZ3MvU2NyaXB0VmFsdWUu
aD4KKyNpbXBvcnQgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JG
cm9udGVuZENsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KQEAgLTY5Myw3
ICs2OTQsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphcHBlbmQoY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFN0cmluZwogCiAgICAgaWYgKG5vdGlmeUluc3Bl
Y3RvckNvbnRyb2xsZXIpIHsKICAgICAgICAgaWYgKFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBbX2lu
c3BlY3RlZFdlYlZpZXcuZ2V0KCkgcGFnZV0pCi0gICAgICAgICAgICBpbnNwZWN0ZWRQYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgICAgICAgICBp
bnNwZWN0ZWRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6RnJvbnRlbmREaXNjb25uZWN0ZWQp
OwogICAgIH0KIAogICAgIFJldGFpblB0cjxXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyPiBw
cm90ZWN0KHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDk2ZTQ1OWEuLjlmMGE1MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBy
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JWaWV3KToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JE
aXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIxICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZv
QG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bQ3VybF0gRG93bmxvYWQgcmVxdWVz
dCBoYXMgaW5jb3JyZWN0IHVzZXIgYWdlbnQgc3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggZjIy
YjcwOS4uOTc2MzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01lc3Nh
Z2VCcm9hZGNhc3Rlci5oPgogCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFz
ZS5oPgogI2luY2x1ZGUgPHdjaGFyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CkBAIC00MzgsNyArNDM5LDcgQEAg
dm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZpZXcoYm9v
bCBub3RpZnlJbnNwZWN0b3JDb250cm8KICAgICBjbG9zZVdpbmRvd1dpdGhvdXROb3RpZmljYXRp
b25zKCk7CiAKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikgewotICAgICAgICBt
X2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworICAgICAgICBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICAgICAgbV9pbnNwZWN0
b3JDbGllbnQtPnVwZGF0ZUhpZ2hsaWdodCgpOwogICAgIH0KICAgICA6OkRlc3Ryb3lXaW5kb3co
bV9mcm9udGVuZEh3bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDAzZDBjYTQuLjMzMDE0N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNsb3NlV2luZG93KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yOjpyZW1vdGVGcm9udGVuZERpc2Nvbm5lY3RlZCk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbi4KKwogMjAxNC0wMS0yMiAgRGF2aWQgRmFybGVyICA8ZGZhcmxl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgQVNBTiBidWlsZHMgYXJlIGJyb2tlbiAtIG1pc3Npbmcg
ZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKaW5kZXgg
MDU4ZjBmZi4uMzk2ZWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckNv
bnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFz
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTU3LDcgKzU4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6YnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xv
c2VXaW5kb3coKQogewotICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBtX3BhZ2UtPmluc3Bl
Y3RvcigpLT5kaWRDbG9zZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDQzMDUyMmIuLmM5YTM2OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIu
aD4KKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVkZSA8
YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZS5oPgogCkBAIC0zMjYsNyArMzI3LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnJlbW90ZUZy
b250ZW5kQ29ubmVjdGVkKCkKIHZvaWQgV2ViSW5zcGVjdG9yOjpyZW1vdGVGcm9udGVuZERpc2Nv
bm5lY3RlZCgpCiB7CiAgICAgQVNTRVJUKG1fcmVtb3RlRnJvbnRlbmRDb25uZWN0ZWQpOwotICAg
IG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZy
b250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBtX3JlbW90ZUZyb250ZW5kQ29ubmVjdGVkID0gZmFs
c2U7CiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221932</attachid>
            <date>2014-01-22 18:19:51 -0800</date>
            <delta_ts>2014-01-22 20:27:50 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix - Passing Tests</desc>
            <filename>again.patch</filename>
            <type>text/plain</type>
            <size>123420</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzBmYjc0Li5lOGQyOTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTQtMDEt
MjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0
RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IGluIHRlc3RzLiBCcmVha3Bv
aW50cyBhcmUgYWxyZWFkeQorICAgICAgICBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGVzdHMuIEFs
c28gc2luY2UgdGhlIERlYnVnZ2VyQWdlbnQuZW5hYmxlKCkgY2FsbAorICAgICAgICBub3cgaW1t
ZWRpYXRlbHkgcmVjb21waWxlcyBzY3JpcHRzLCBzb3VyY2VQYXJzZWQgZXZlbnRzIGFyZSBub3cg
c2VudCB0bworICAgICAgICB0aGUgZnJvbnRlbmQgZWFybGllciBldmVuIGJlZm9yZSB0aGUgc2V0
QnJlYWtwb2ludHNBY3RpdmUgbWVzc2FnZSBoYXMKKyAgICAgICAgYmVlbiBwcm9jZXNzZWQsIHNv
IHRoZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IHdhcyBzaG93aW5nIHVwCisgICAgICAg
IGxhdGVyLCBzZWVtaW5nbHkgcmFuZG9tbHkgaW4gdGVzdHMsIGFuZCBpcyBubyBsb25nZXIgaGVs
cGZ1bC4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRp
dGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRo
LWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1p
bnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1h
Y3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
dGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Nh
bGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxl
LXByb2Jlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQ
YXVzZU9uRXhjZXB0aW9ucy1hbGwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVt
b3ZlZC5odG1sOgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVg6IFdlYktpdCBjb25jYXRlbmF0ZXMgbmFtZSBvZiBhbGwgdG9v
bGJhciBidXR0b25zIGluIHRoZSBhcHBsZS5jb20gdmlkZW8gcGxheWVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CmluZGV4IDY0NmUzOTAu
LmE3MzFiMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxl
IGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGlu
dWUgZXhlY3V0aW5nIGNvZGUuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9p
bnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMp
CiBDbG9zaW5nIHRoZSBpbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0
YWNoLmh0bWwKaW5kZXggOTUxMDIxMS4uYmFjOGY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2guaHRtbApAQCAtNTAsOSArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDU3ZDI5NjMuLmJkNDEwZjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwu
Y2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CmluZGV4IGRlNmM4NGMuLjNiOTQ3M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCkBAIC00NywxMCArNDcsNiBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAg
fSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKaW5kZXggYmFlODc3Mi4uNzg4NmQ3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4g
YWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1
Z2dlci4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKIENsb3NpbmcgdGhl
IGluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRt
bAppbmRleCAzNTIwYjQ5Li42MTdlZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29u
ZGl0aW9uLWRldGFjaC5odG1sCkBAIC01MCwxMCArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDk1NWFhMDUuLjVi
MWUyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0
aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1
c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGNv
bmRpdGlvbnMuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGlu
c2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBU
aGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiB0aGUgZXhjZXB0aW9uIGluc2lkZSB0aGUg
Y29uZGl0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24uaHRtbAppbmRleCA4NzhkNjU0Li5jMWZjMjE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
d2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApAQCAtNDYs
MTAgKzQ2LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0Zv
ckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1l
dmFsLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDAxYjg0ZDguLmU3MDEyYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBA
QAogV2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxk
IGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCiAKLUJyZWFrcG9p
bnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50QmFzaWMK
IFBBU1M6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIm90aGVyIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13
aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IGUyYmNlNTIuLjk2
YTMwMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9u
Lmh0bWwKQEAgLTU2LDEwICs1Niw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHth
Y3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBjYjVhZjVlLi5hMzM0ODQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRoZSBk
ZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1
dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCBicmVha3BvaW50LmpzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjoo
MikgYStiOigzKQogRXhlY3V0aW5nIGNvbmRpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1h
bmQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy5odG1sCmluZGV4IDZjMWNj
NTkuLmEyZTU4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwKQEAgLTYwLDEwICs2MCw2IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCAxMGUyYWZjLi4wYTVmNmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
PHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcg
dGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUuaHRtbAppbmRleCA2ZDkxZjkwLi5mNjU2OWRhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCkBAIC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIC8vIGNhbGwgZnJhbWUgZnVuY3Rpb25OYW1lcyBhcmUgd2hhdCB3ZSBleHBlY3QuCiAK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhwZWN0
ZWQudHh0CmluZGV4IGY0MTJlNTAuLjBiOTRjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxl
ZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKaW5kZXggODhiOTJmYi4uZjA2ZTEzNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtdGhpcy1ob3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFtZSB0aGlzIHZhbHVlcyBhcmUgd2hhdCB3ZSBl
eHBlY3QuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUi
LCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtw
b2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dAppbmRleCBjMWRiMDAzLi45MTRkMDA0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10
aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8
c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmluZyB0
ZXN0RnVuY3Rpb24KIFBBU1M6IHN0ZXAgMDogdHlwZSAib2JqZWN0IiBjbGFzc05hbWUgIk51bWJl
ciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sCmluZGV4IGFjNTY0
NDQuLjUwNzg5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRt
bApAQCAtMTIsOSArMTIsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBjYWxsIGZyYW1lIHRo
aXMgdmFsdWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQi
KTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1zdHJpY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0CmluZGV4IGE5NjgzZjQu
LjdjN2IyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6
Y29sdW1uIGluIDxzY3JpcHQ+CiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIDxzY3JpcHQ+
CiBSdW5uaW5nIHRlc3RGdW5jdGlvbgogUEFTUzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZhbHVl
ICIyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWwKaW5kZXggMjhiOGMwZi4u
YTVlZjhjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sCkBAIC0xMiw5
ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGNhbGwgZnJhbWUgdGhpcyB2YWx1ZXMg
YXJlIHdoYXQgd2UgZXhwZWN0LgogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0p
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUt
cHJvYmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3
MTM3MDUuLmQ4YjViYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIu
c2V0QnJlYWtwb2ludCB3aXRoIG11bHRpcGxlIHByb2JlIGFjdGlvbnMgYXQgdGhlIHNhbWUgYnJl
YWtwb2ludC4gVGVzdCBEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSBldmVudHMgZm9yIHRoZSBwcm9i
ZSBzYW1wbGVzLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBQ
QVNTOiBTaG91bGQgcmVjZWl2ZSB0d28gYnJlYWtwb2ludCBhY3Rpb24gaWRlbnRpZmllcnMgb24g
RGVidWdnZXIuc2V0QnJlYWtwb2ludCBjYWxsYmFjay4KIFJ1bm5pbmcgYnJlYWtwb2ludEFjdGlv
bnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmluZGV4IGNmMGUzZjUuLjE2ODA2YWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKQEAgLTgsOSAr
OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIu
Li8uLi8uLi8uLi9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb2JlLWhlbHBlci5qcyIp
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIHNhbXBs
ZXMgPSBbXTsKICAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0gMjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9y
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
bmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY3OTAzNTkuLjYyYzJkZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQt
aW5zcGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYg
QEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjogUEFTUzogRXhwZWN0ZWQgZXhjZXB0
aW9uCiBDaGVja2luZyB0aGF0IHRoZSBpbnNwZWN0b3IgY29kZSBjYW4gYmUgZGVidWdnZWQgdXNp
bmcgYSBzZWNvbmQgaW5zcGVjdG9yIHdpbmRvdy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwKIFBBU1M6IFBhdXNlZCEKIFBBU1M6IFJl
c3VtZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCmluZGV4IGI2YmI3M2QuLmY0NWMwMjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCkBAIC05LDE1ICs5LDEyIEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJ1bnMgaW4gdGhlIHNlY29uZCBpbnNw
ZWN0b3Igd2luZG93LiBXZSBjYW4gdXNlIHRoaXMgb25lIHRvIGRlYnVnIHRoZSBmaXJzdCBpbnNw
ZWN0b3IuCiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5h
YmxlIiwge30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNl
cHRpb25zIC0gYWxsIik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7CiAKLSAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGFuIGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAi
c2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdQQVNTOiBFeHBlY3RlZCBl
eGNlcHRpb24nKSB9LCAwKTsifSk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIFRy
aWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4KKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignUEFTUzogRXhwZWN0ZWQg
ZXhjZXB0aW9uJykgfSwgMCk7In0pOwogICAgICAgICB9KTsKIAogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDFmYWI0
M2QuLmQ5MDYwNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50CiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIFNldCBCcmVha3BvaW50LCBUcmlnZ2VyaW5n
IGl0CiBpbnNpZGUgYnJlYWtwb2ludEJhc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbAppbmRl
eCBlNDIwMGE5Li4yNTU2MTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKQEAgLTYsOSAr
Niw2IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0g
ICAgfSk7CiAKICAgICB2YXIgYnJlYWtwb2ludFRyaWdnZXJlZCA9IDA7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFj
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODIxYzYyZC4uODI0
MjFhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTYsNyArNiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlvbgog
Q09OU09MRSBNRVNTQUdFOiBsb2ctYWN0aW9uLWFmdGVyCiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50
IG9wdGlvbnMuYWN0aW9ucwogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50
LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5v
dCB0cmlnZ2VyCiBpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMSkgYjoodW5kZWZpbmVkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCmluZGV4IDExYjY5YWEuLmI0NmFmM2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwKQEAgLTEwLDkgKzEwLDYgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xl
LmVuYWJsZSIsIHt9KTsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7CiAgICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxl
cyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS1leHBlY3RlZC50eHQKaW5kZXggOGM2MjIwZi4uNmM2YTRkNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRp
bnVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51ZQogCi1CcmVh
a3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRB
dXRvbWF0aWNhbGx5Q29udGludWUgbXVsdGlwbGUgdGltZXMgd2l0aCBhdXRvbWF0aWNhbGx5IGNv
bnRpbnVlCiBpbnNpZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
YXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCA2NGI4MzQ1Li5kNDRhYzNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNiw5
ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBhbGxvd2VkVG9IaXRCcmVha3BvaW50ID0gZmFsc2U7CiAgICAg
dmFyIGJyZWFrcG9pbnRJZGVudGlmaWVyID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0CmluZGV4IGE3YjJkYWQuLjQ4NTQ1NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbHVtbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUg
QEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAot
QnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9u
CiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKaW5kZXgg
NzNlYTk0Yi4uODdmYWNkNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBA
IC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGJ5IHJ1bm5pbmcgc29tZSBl
eHByZXNzaW9ucyBhdCB0aGF0IGNhbGwgZnJhbWUuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVk
Iik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbmRpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDlkNzc3
ZDAuLmE1MmU2YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0
aW9ucy5jb25kaXRpb24KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5q
cwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBsZSB0aW1lcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bmRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKaW5kZXggMTkwMzU4Ny4uZTc2NGU0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29uZGl0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKQEAgLTYsOSArNiw2IEBACiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAgICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDllYTQ5OTcuLjk0
M2RiYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1
IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MCBpbiA8c2NyaXB0IHNyYz0iLi4u
Ij4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUEFTUzogUmVj
ZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludCBhdCBz
cGVjaWZpZWQgbG9jYXRpb24gYWxyZWFkeSBleGlzdHMuCiBSdW5uaW5nIGJyZWFrcG9pbnRCYXNp
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRp
b24tZXhwZWN0ZWQudHh0CmluZGV4IDZkZWJjN2IuLmE5OTdmNDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAndGhpcy53aWxsLmNhdXNlJykKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25k
aXRpb24gb3Igb3B0aW9ucy5hY3Rpb24gd2l0aCBleGNlcHRpb24KIAotQnJlYWtwb2ludHMgRW5h
YmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlv
biB0byB0cmlnZ2VyIGNvbmRpdGlvbiBleGNlcHRpb24uCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwKaW5kZXggNWM5M2M0MS4uYjE1YmRhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCkBAIC05
LDkgKzksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkNvbnNvbGUuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIAogICAgIHZhciBsb2dzU2VlbiA9IDA7CiAgICAgY29uc3QgZXhwZWN0ZWRMb2dzID0g
MjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sCmluZGV4IDkwZjAzNWEuLjdlNzY4YmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQuaHRtbApAQCAtNiw5ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3Rp
dmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwt
ZXhwZWN0ZWQudHh0CmluZGV4IGM1MGRkNzIuLjkwYzExNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNl
VVJMLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50QnlVcmwgaW4gU2NyaXB0IG5hbWVkIHZpYSBz
b3VyY2VVUkwKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgc291cmNlVVJMLXRlc3QuanMK
IFJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVy
bC1zb3VyY2VVUkwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKaW5kZXggMTAxYzJkOC4uMWE3MTZi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBA
IC05LDkgKzksNiBAQCBldmFsKCJmdW5jdGlvbiBzb3VyY2VVUkxGdW5jdGlvbigpIHtcbiAgICB2
YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBjCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKaW5kZXggYTk5YTBkNy4uNjlmN2FiZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDYg
QEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIGFsbAogCi1CcmVha3BvaW50cyBFbmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9u
RXhjZXB0aW9ucyAtIGFsbAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBz
dGF0ZW1lbnRzCiBQYXVzZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0
bWwKaW5kZXggMzE3MWRmYi4uYmVmMzM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0
aW9ucy1hbGwuaHRtbApAQCAtMTAyLDE1ICsxMDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIAog
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2
ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgZnVu
Y3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKLSAgICAgICAgICAgIGV2YWx1
YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3RQ
YXVzZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHJpZ2dlck5leHQoKTsKLSAgICAgICAgICAg
IH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFs
bCIpOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7CisgICAgICAgICAgICB0cmlnZ2VyTmV4dCgpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNl
cHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CmluZGV4IDU3MThkY2QuLmNkZDQ0M2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1ub25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKQEAg
LTEyLDcgKzEyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIG5vbmUKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBub25lCiBQQVNTOiBObyBwYXVzZXMKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLmh0bWwKaW5kZXggYmE4NzBmMy4uNmM2MDcw
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCkBAIC02LDMy
ICs2LDI5IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyAtIG5vbmUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IDEr
MTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgbm9F
eGNlcHRpb24oKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChl
KSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9
IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNo
TmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0
VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7
In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQo
ZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyB9LCAw
KTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3Rl
ZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHt9LmEuYi5jLmQ7IH0sIDAp
OyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkJh
c2ljKCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJl
c3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1N0cmluZygpOyB9LCAwKTsifSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1BhcmFtKHt4OjF9
KTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhy
b3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
fSwgMTApOwotICAgICAgICAgICAgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9u
KHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihy
ZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgMSsxOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IG5vRXhjZXB0aW9uKCk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0Y2ggKGUpIHsg
Y29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShlKSk7IH0gfSwg
MCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChl
eGNlcHRpb25CYXNpYywgMSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7In0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RG
dW5jdGlvbiwgMyk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgY2F0Y2hOZXN0ZWQodGhyb3dTdHJpbmcsIDEwKTsgfSwgMCk7In0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJy
b3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsge30uYS5iLmMuZDsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25CYXNpYygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lv
bjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0s
IDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dTdHJpbmco
KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1Bh
cmFtKHt4OjF9KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0sIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0sIDEwKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDZhMTZiNjcuLjg4OWJmMjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4
cGVjdGVkLnR4dApAQCAtMTksNyArMTksNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNh
dGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gc3RyaW5nIgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjE4
LCJjb2x1bW4iOjEyLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQogRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMgdW5jYXVnaHQKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24g
bm9uLWV4Y2VwdGlvbiBzdGF0ZW1lbnRzIG9yIGNhdWdodCBleGNlcHRpb24gc3RhdGVtZW50cwog
UGF1c2VkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRt
bAppbmRleCBiYmI3YzMzLi4yNWU0MDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbApAQCAtNzksMTUgKzc5LDEyIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAidW5j
YXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodCIpOwot
ICAgICAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0cmlnZ2VyTmV4
dFVuY2F1Z2h0RXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogInVu
Y2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIHVuY2F1Z2h0Iik7CisgICAgICAg
IGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVj
dFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24o
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4
cGVjdGVkLnR4dAppbmRleCBlY2VjNTBiLi43MDlhYjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2Rl
LXJlbW92ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogVGVzdGluZyB0aGF0IERPTS5j
aGlsZE5vZGVSZW1vdmVkIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQgZXZlbiB3aGVuIHRoZSBlbGVt
ZW50IGlzIG1vdmVkIHdoaWxlIHBhdXNlZCBpbiB0aGUgZGVidWdnZXIgb24gYSBET01EZWJ1Z2dl
ciAibm9kZS1yZW1vdmVkIiBicmVha3BvaW50LgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCA8c2NyaXB0PgogU3RvcHBlZCBvbiBET00gYnJlYWtwb2ludAogUEFTUzogb25DaGlsZE5vZGVS
ZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRt
bAppbmRleCAyNTA0ZTQ1Li5iNjYxNmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwKQEAg
LTExOCwxMyArMTE4LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRET01CcmVha3BvaW50Iiwge25vZGVJZDogdGFy
Z2V0RWxlbWVudElkLCB0eXBlOiAibm9kZS1yZW1vdmVkIn0pOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiBmaW5hbENv
bnRhaW5lcklkfSk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7ICAgICAgICAKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhw
cmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5h
YmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBkZjMwMTRmLi4yYjViODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNl
Lmg6CisgICAgICAgIFdoZW4gZGlzY29ubmVjdGluZyBhZ2VudHMsIHByb3ZpZGUgYSBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIGZvcgorICAgICAgICB0aGUgZGlzY29ubmVjdGlvbi4gSXQgY291
bGQgYmUgdGhhdCBhbiBpbnNwZWN0b3IgZnJvbnRlbmQgaXMganVzdAorICAgICAgICBkaXNjb25u
ZWN0aW5nIG9yIHRoYXQgdGhlIGluc3BlY3RlZCBvYmplY3QgaXMgZ29pbmcgYXdheSBlbnRpcmVs
eQorICAgICAgICBhbmQgd2UgY2FuIGF2b2lkIGRvaW5nIHNvbWUgd29yay4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6On5KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUpOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3RJbnRlcm5hbCk6CisgICAgICAgIFBhc3Mg
ZGlmZmVyZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdHMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQWdlbnQuaDoKKyAgICAgICAgUGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIGFyb3Vu
ZCB3aGVyZSBuZWVkZWQuCisKIDIwMTQtMDEtMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTIHdoaXRlc3BhY2UgZGVmaW5pdGlvbiBmb3Ig
Y2hhbmdlcyBpbiBVbmljb2RlIDYuMwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmgKaW5kZXggMjBhZDcxZi4uM2M1NjlkNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oCkBAIC0zNCwxMiArMzQsMTcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bDsKIAorZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHsKKyAgICBJbnNwZWN0
ZWRPYmplY3RCZWluZ0Rlc3Ryb3llZCwKKyAgICBGcm9udGVuZERpc2Nvbm5lY3RlZAorfTsKKwog
Y2xhc3MgSW5zcGVjdG9yQWdlbnRCYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JBZ2VudEJhc2UoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNjYXJkQWdlbnQoKSB7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKaW5k
ZXggMjAzYzhmNi4uZTBkOWVkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCkBAIC00OCwxMCArNDgs
MTAgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmUKICAgICAgICAgbV9hZ2VudHNbaV0tPmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChmcm9udGVuZENoYW5uZWwsIGJhY2tlbmREaXNwYXRjaGVy
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hZ2VudHMuc2l6ZSgpOyBpKyspCi0gICAgICAgIG1f
YWdlbnRzW2ldLT53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworICAgICAgICBtX2Fn
ZW50c1tpXS0+d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5OjpkaXNjYXJkQWdlbnRzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgK
aW5kZXggMmU4OTAzOS4uMTdkNjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgKQEAgLTM0LDYgKzM0LDcg
QEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbnNwZWN0b3JBZ2VudEJhc2U7CiBjbGFz
cyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbDsKK2VudW0gY2xhc3MgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjsKIAogY2xhc3MgSlNf
RVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQWdlbnRSZWdpc3RyeSB7CiBwdWJsaWM6CkBAIC00Miw3
ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVj
dG9yQWdlbnRCYXNlPik7CiAKICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopOwot
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29u
KTsKICAgICB2b2lkIGRpc2NhcmRBZ2VudHMoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3NDYyYWFkLi5kN2I0NmQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC02OCwxMiArNjgsMTIgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwKICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoZnJvbnRlbmRDaGFubmVsLCBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmdl
dCgpKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZCgpCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewog
ICAgIGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgbV9hZ2Vu
dHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1faW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX2luc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaAppbmRleCBmZjQxYjU5Li5jNGZiZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIH5KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFz
b24pOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYp
OwogCiAgICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggNjliYTVlYi4uZmNl
ZTQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEluc3BlY3Rv
ckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiBmcm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKaW5kZXggOTQz
ZWYxNi4uYzdkYzliYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNv
bikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuY3BwCmluZGV4IGM5MzNhYTYuLjcwZDNhM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQog
CiAjaW5jbHVkZSAiQVBJU2hpbXMuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudEJhc2UuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3Rvci5oIgpAQCAtNDUsNyArNDYsNyBA
QCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZShKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjp+SlNH
bG9iYWxPYmplY3REZWJ1Z2dhYmxlKCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVy
KQotICAgICAgICBkaXNjb25uZWN0KCk7CisgICAgICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ryb3llZCk7CiB9
CiAKIFN0cmluZyBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6Om5hbWUoKSBjb25zdApAQCAtNjUs
OSArNjYsMTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwKIAogdm9pZCBKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoKQogeworICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7Cit9CisKK3ZvaWQg
SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNjb25uZWN0SW50ZXJuYWwoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbiByZWFzb24pCit7CiAgICAgQVBJRW50cnlTaGltIGVudHJ5U2hpbSgmbV9n
bG9iYWxPYmplY3Qudm0oKSk7CiAKLSAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlzY29ubmVjdEZyb250
ZW5kKHJlYXNvbik7CiAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyID0gbnVsbHB0cjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dERlYnVnZ2FibGUuaAppbmRleCBhYWZmMTk5Li5jZjNlZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaApA
QCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBJbnNwZWN0b3Igewor
ZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOworfQorCiBuYW1lc3BhY2UgSlND
IHsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkBAIC01Miw2ICs1Niw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZUZyb250ZW5kKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9pZCBkaXNjb25uZWN0
SW50ZXJuYWwoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbik7CisK
ICAgICBKU0dsb2JhbE9iamVjdCYgbV9nbG9iYWxPYmplY3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyPiBtX2luc3BlY3Rv
ckNvbnRyb2xsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRlYWJjZTEuLmZjMjBjMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDEgQEAKKzIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxl
QWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgor
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHREZWJ1Z1NlcnZlcjo6U2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICBSZW1vdmUgbV9yZWNv
bXBpbGVUaW1lciBhbmQgdGhlIHJlY29tcGlsZSBzb29uIGZ1bmN0aW9uLgorICAgICAgICBXZSBj
YW4ganVzdCByZWNvbXBpbGUgaW1tZWRpYXRlbHkgaW4gYWxsIGV4aXN0aW5nIGNhc2VzLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZFJlbW92ZUxhc3RM
aXN0ZW5lcik6CisgICAgICAgIEFkZCBhICJkaWRBZGRGaXJzdExpc3RlbmVyIiB0byBtYXRjaCAi
ZGlkUmVtb3ZlTGFzdExpc3RlbmVyIi4KKyAgICAgICAgT25seSByZWNvbXBpbGUgZnVuY3Rpb25z
IHdoZW4gd2UgYXR0YWNoIHRoZSBkZWJ1Z2dlciBhbmQgd2hlbgorICAgICAgICB3ZSBkZXRhY2gg
dGhlIGxhc3QgbGlzdGVuZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVn
U2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIFNhbWUgdGhpbmcuIEFs
c28gcmVhcnJhbmdlIHRoZSBmdW5jdGlvbnMgdG8gcmVhZCBiZXR0ZXIuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIFVzZSB0aGUgZGly
ZWN0IHJlY29tcGlsZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZW1vdmVkICJzb29uIiB2ZXJz
aW9uLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIFVwZGF0ZSBkaXNjb25u
ZWN0RnJvbnRlbmQgc3ltYm9sLgorCisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpj
bG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzY29ubmVjdEZyb21Xb3JrZXJH
bG9iYWxTY29wZUluc3BlY3RvclRhc2spOgorICAgICAgICBJbmNsdWRlIGFuIEluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb24gd2hlbiBjYWxsaW5nIGRpc2Nvbm5lY3RGcm9udGVuZC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIElm
IHRoZSBkaXNjb25uZWN0IHJlYXNvbiBpcyB0aGUgcGFnZSB3aWxsIGJlIGRlc3Ryb3llZCwgZG9u
J3QgcmVjb21waWxlIHdoZW4gZGlzY29ubmVjdGluZy4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRp
c2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICBJZiB0aGUgZGlzY29ubmVjdCByZWFz
b24gaXMgdGhlIHBhZ2Ugd2lsbCBiZSBkZXN0cm95ZWQsIGRvbid0IHJlY29tcGlsZSB3aGVuIGRp
c2Nvbm5lY3RpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKToKKyAgICAg
ICAgUGFzcyBkaWZmZXJlbnQgcmVhc29ucyBmb3IgdGhlIGRpZmZlcmVudCBkaXNjb25uZWN0IHJl
YXNvbnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5o
OgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIFBhc3MgZGlmZmVyZW50IHJlYXNvbnMg
Zm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdCByZWFzb25zLgorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5wdXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvck1lbW9yeUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvcldvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckRl
YnVnZ2VyQWdlbnQ6OnN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICog
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0
UmVhc29uIHBhcmFtLgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+CiAKICAgICAgICAgQVg6IERvIG5vdCByZXR1cm4gYW4gYWNjZXNzaWJsZSBuYW1l
IGZvciBhbiBvYmplY3QganVzdCBiZWNhdXNlIGl0IGhhcyB0YWJpbmRleD0wCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDg4NGZkMmYuLmQzMjllYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0y
NzYzLDcgKzI3NjMsNyBAQCBfX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQyNXNlbGVjdENv
bG9ySW5Db2xvckNob29zZXJFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNs
aWVudDMxZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxN0luc3BlY3RvckNvdW50ZXJzMTJjb3VudGVyVmFsdWVFTlMw
XzExQ291bnRlclR5cGVFCiBfX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxNWNvbm5l
Y3RGcm9udGVuZEVQTjlJbnNwZWN0b3IyNEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbEUKLV9fWk43
V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5kRXYKK19fWk43
V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5kRU45SW5zcGVj
dG9yMjVJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uRQogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMThzZXRQcm9maWxlckVuYWJsZWRFYgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMjVldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kRWxSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI2c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFTlN0M19fMTEwdW5pcXVlX3B0cklOU18yM0luc3BlY3RvckZyb250ZW5kQ2xpZW50RU5TMV8x
NGRlZmF1bHRfZGVsZXRlSVMzX0VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDFjZWM3YjMuLjg0MDY3OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmNwcApAQCAtOTQsMTMgKzk0LDE1IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjph
ZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSogcGFnCiAgICAg
T3duUHRyPExpc3RlbmVyU2V0PiYgbGlzdGVuZXJzID0gbV9wYWdlTGlzdGVuZXJzTWFwLmFkZChw
YWdlLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFsaXN0ZW5lcnMpCiAgICAg
ICAgIGxpc3RlbmVycyA9IGFkb3B0UHRyKG5ldyBMaXN0ZW5lclNldCk7CisKKyAgICBib29sIHdh
c0VtcHR5ID0gbGlzdGVuZXJzLT5pc0VtcHR5KCk7CiAgICAgbGlzdGVuZXJzLT5hZGQobGlzdGVu
ZXIpOwogCi0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgcGFnZS0+c2V0
RGVidWdnZXIodGhpcyk7CisgICAgaWYgKHdhc0VtcHR5KQorICAgICAgICBkaWRBZGRGaXJzdExp
c3RlbmVyKHBhZ2UpOwogfQogCi12b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlz
dGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBhZ2UpCit2b2lkIFBh
Z2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciog
bGlzdGVuZXIsIFBhZ2UqIHBhZ2UsIGJvb2wgc2tpcFJlY29tcGlsZSkKIHsKICAgICBBU1NFUlRf
QVJHKGxpc3RlbmVyLCBsaXN0ZW5lcik7CiAgICAgQVNTRVJUX0FSRyhwYWdlLCBwYWdlKTsKQEAg
LTExMSwyMCArMTEzLDE3IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0
ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSoKIAogICAgIExpc3RlbmVy
U2V0KiBsaXN0ZW5lcnMgPSBpdC0+dmFsdWUuZ2V0KCk7CiAgICAgbGlzdGVuZXJzLT5yZW1vdmUo
bGlzdGVuZXIpOworCiAgICAgaWYgKGxpc3RlbmVycy0+aXNFbXB0eSgpKSB7CiAgICAgICAgIG1f
cGFnZUxpc3RlbmVyc01hcC5yZW1vdmUoaXQpOwotICAgICAgICBkaWRSZW1vdmVMYXN0TGlzdGVu
ZXIocGFnZSk7CisgICAgICAgIGRpZFJlbW92ZUxhc3RMaXN0ZW5lcihwYWdlLCBza2lwUmVjb21w
aWxlKTsKICAgICB9CiB9CiAKIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucygpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNv
bW1vblZNKCkpOwotICAgIC8vIElmIEphdmFTY3JpcHQgc3RhY2sgaXMgbm90IGVtcHR5IHBvc3Rw
b25lIHJlY29tcGlsYXRpb24uCi0gICAgaWYgKEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5lbnRy
eVNjb3BlKQotICAgICAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBlbHNl
Ci0gICAgICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKSk7CisgICAgRGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKEpTRE9N
V2luZG93Ojpjb21tb25WTSgpKTsKIH0KIAogU2NyaXB0RGVidWdTZXJ2ZXI6Okxpc3RlbmVyU2V0
KiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtMTYxLDE1ICsxNjAsMjUgQEAgdm9pZCBQYWdl
U2NyaXB0RGVidWdTZXJ2ZXI6OmRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKICAgICAgICAgc2V0SmF2YVNjcmlwdFBhdXNlZChwYWdlLT5ncm91cCgpLCBmYWxz
ZSk7CiB9CiAKLXZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVu
ZXIoUGFnZSogcGFnZSkKK3ZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRBZGRGaXJzdExp
c3RlbmVyKFBhZ2UqIHBhZ2UpCit7CisgICAgLy8gU2V0IGRlYnVnZ2VyIGJlZm9yZSByZWNvbXBp
bGluZyB0byBnZXQgc291cmNlUGFyc2VkIGNhbGxiYWNrcy4KKyAgICBwYWdlLT5zZXREZWJ1Z2dl
cih0aGlzKTsKKyAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOworfQorCit2b2lkIFBhZ2VT
Y3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2UsIGJvb2wg
c2tpcFJlY29tcGlsZSkKIHsKICAgICBBU1NFUlQocGFnZSk7CiAKICAgICBpZiAobV9wYXVzZWRQ
YWdlID09IHBhZ2UpCiAgICAgICAgIG1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyA9IHRy
dWU7CiAKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBwYWdlLT5zZXRE
ZWJ1Z2dlcigwKTsKKyAgICAvLyBDbGVhciBkZWJ1Z2dlciBiZWZvcmUgcmVjb21waWxpbmcgYmVj
YXVzZSB3ZSBkbyBub3QgbmVlZCBzb3VyY2VQYXJzZWQgY2FsbGJhY2tzLgorICAgIHBhZ2UtPnNl
dERlYnVnZ2VyKG51bGxwdHIpOworCisgICAgaWYgKCFza2lwUmVjb21waWxlKQorICAgICAgICBy
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogfQogCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZl
cjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCBlZDdmMjRlLi41NjdlZDkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlciYgc2hhcmVkKCk7CiAKICAgICB2b2lkIGFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlz
dGVuZXIqLCBQYWdlKik7Ci0gICAgdm9pZCByZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3Rl
bmVyKiwgUGFnZSopOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5l
ciosIFBhZ2UqLCBib29sIHNraXBSZWNvbXBpbGUpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY29t
cGlsZUFsbEpTRnVuY3Rpb25zKCkgb3ZlcnJpZGU7CiAKQEAgLTY1LDcgKzY1LDggQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpOwogCi0gICAg
dm9pZCBkaWRSZW1vdmVMYXN0TGlzdGVuZXIoUGFnZSopOworICAgIHZvaWQgZGlkQWRkRmlyc3RM
aXN0ZW5lcihQYWdlKik7CisgICAgdm9pZCBkaWRSZW1vdmVMYXN0TGlzdGVuZXIoUGFnZSosIGJv
b2wgc2tpcFJlY29tcGlsZSk7CiAKICAgICB2b2lkIHNldEphdmFTY3JpcHRQYXVzZWQoY29uc3Qg
UGFnZUdyb3VwJiwgYm9vbCBwYXVzZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdFBhdXNlZChQ
YWdlKiwgYm9vbCBwYXVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGRhYzUyYTIuLjQwM2RmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJKYXZhU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJTb3VuZC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVk
ZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlckNh
bGxGcmFtZS5oPgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgpAQCAtNTcsNyAr
NTgsNiBAQCBTY3JpcHREZWJ1Z1NlcnZlcjo6U2NyaXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0luV29y
a2VyVGhyZWFkKQogICAgIDogRGVidWdnZXIoaXNJbldvcmtlclRocmVhZCkKICAgICAsIG1fZG9u
ZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyh0cnVlKQogICAgICwgbV9jYWxsaW5nTGlzdGVuZXJz
KGZhbHNlKQotICAgICwgbV9yZWNvbXBpbGVUaW1lcih0aGlzLCAmU2NyaXB0RGVidWdTZXJ2ZXI6
OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtMzEzLDE2ICsz
MTMsNiBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpoYW5kbGVQYXVzZShEZWJ1Z2dlcjo6UmVh
c29uRm9yUGF1c2UsIEpTR2xvYmFsT2JqZWN0KiB2bQogICAgIGRpc3BhdGNoRnVuY3Rpb25Ub0xp
c3RlbmVycygmU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRGlkQ29udGludWUsIHZtRW50cnlH
bG9iYWxPYmplY3QpOwogfQogCi12b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9uc1Nvb24oKQotewotICAgIG1fcmVjb21waWxlVGltZXIuc3RhcnRPbmVTaG90KDAp
OwotfQotCi12b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Rp
bWVyRmlyZWQoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+JikKLXsKLSAgICByZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucygpOwotfQotCiBjb25zdCBWZWN0b3I8U2NyaXB0QnJlYWtwb2ludEFjdGlvbj4m
IFNjcmlwdERlYnVnU2VydmVyOjpnZXRBY3Rpb25zRm9yQnJlYWtwb2ludChKU0M6OkJyZWFrcG9p
bnRJRCBicmVha3BvaW50SUQpCiB7CiAgICAgQVNTRVJUKGJyZWFrcG9pbnRJRCAhPSBKU0M6Om5v
QnJlYWtwb2ludElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1
Z1NlcnZlci5oCmluZGV4IGZhMGVlNWQuLjkzNTQwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtMzQsNyArMzQsNiBAQAogCiAjaW5j
bHVkZSAiU2NyaXB0QnJlYWtwb2ludC5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnTGlzdGVuZXIu
aCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdE9iamVjdC5o
PgogI2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTU5LDcgKzU4LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludChK
U0M6OkJyZWFrcG9pbnRJRCk7CiAgICAgdm9pZCBjbGVhckJyZWFrcG9pbnRzKCk7CiAKLSAgICB2
b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOwogICAgIHZpcnR1YWwgdm9pZCByZWNv
bXBpbGVBbGxKU0Z1bmN0aW9ucygpID0gMDsKIAogICAgIGNvbnN0IFZlY3RvcjxTY3JpcHRCcmVh
a3BvaW50QWN0aW9uPiYgZ2V0QWN0aW9uc0ZvckJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50SUQp
OwpAQCAtMTA5LDEyICsxMDcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVQ
YXVzZShKU0M6OkRlYnVnZ2VyOjpSZWFzb25Gb3JQYXVzZSwgSlNDOjpKU0dsb2JhbE9iamVjdCop
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlEb25lUHJvY2Vzc2luZ0Rl
YnVnZ2VyRXZlbnRzKCkgb3ZlcnJpZGUgZmluYWw7CiAKLSAgICB2b2lkIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zVGltZXJGaXJlZChUaW1lcjxTY3JpcHREZWJ1Z1NlcnZlcj4mKTsKLQogICAgIHVu
c2lnbmVkIG1faGl0Q291bnQ7CiAgICAgYm9vbCBtX2NhbGxpbmdMaXN0ZW5lcnM7CiAgICAgQnJl
YWtwb2ludElEVG9BY3Rpb25zTWFwIG1fYnJlYWtwb2ludElEVG9BY3Rpb25zOwotICAgIFRpbWVy
PFNjcmlwdERlYnVnU2VydmVyPiBtX3JlY29tcGlsZVRpbWVyOwogCiAgICAgZnJpZW5kIGNsYXNz
IERlYnVnZ2VyQ2FsbEZyYW1lU2NvcGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGJlYzllNTcuLjY5
NTFiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTU1LDEwICs1NSwyNyBAQCB2b2lkIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lcikK
ICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9saXN0ZW5l
cnMuaXNFbXB0eSgpKQotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+YXR0
YWNoRGVidWdnZXIodGhpcyk7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1w
dHkoKTsKICAgICBtX2xpc3RlbmVycy5hZGQobGlzdGVuZXIpOwotICAgIHJlY29tcGlsZUFsbEpT
RnVuY3Rpb25zKCk7CisKKyAgICBpZiAod2FzRW1wdHkpIHsKKyAgICAgICAgbV93b3JrZXJHbG9i
YWxTY29wZS0+c2NyaXB0KCktPmF0dGFjaERlYnVnZ2VyKHRoaXMpOworICAgICAgICByZWNvbXBp
bGVBbGxKU0Z1bmN0aW9ucygpOworICAgIH0KK30KKwordm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wg
c2tpcFJlY29tcGlsZSkKK3sKKyAgICBpZiAoIWxpc3RlbmVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2xpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIpOworCisgICAgaWYgKG1fbGlzdGVuZXJz
LmlzRW1wdHkoKSkgeworICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+ZGV0
YWNoRGVidWdnZXIodGhpcyk7CisgICAgICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAg
ICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CisgICAgfQogfQogCiB2b2lkIFdvcmtlclNj
cmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpCkBAIC02NiwyMSArODMs
NyBAQCB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9u
cygpCiAgICAgSlNDOjpWTSogdm0gPSBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3JpcHQoKS0+dm0o
KTsKIAogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwotICAgIC8vIElmIEphdmFTY3Jp
cHQgc3RhY2sgaXMgbm90IGVtcHR5IHBvc3Rwb25lIHJlY29tcGlsYXRpb24uCi0gICAgaWYgKHZt
LT5lbnRyeVNjb3BlKQotICAgICAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAg
ICBlbHNlCi0gICAgICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKHZt
KTsKLX0KLQotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2Ny
aXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCi17Ci0gICAgaWYgKCFsaXN0ZW5lcikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9saXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKLSAgICBpZiAo
bV9saXN0ZW5lcnMuaXNFbXB0eSgpKQotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT5zY3Jp
cHQoKS0+ZGV0YWNoRGVidWdnZXIodGhpcyk7CisgICAgSlNDOjpEZWJ1Z2dlcjo6cmVjb21waWxl
QWxsSlNGdW5jdGlvbnModm0pOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpy
dW5FdmVudExvb3BXaGlsZVBhdXNlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCBiZjYxNmFhLi43NjJkMjE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVn
U2VydmVyLmgKQEAgLTQ1LDIwICs0NSwxNyBAQCBwdWJsaWM6CiAgICAgV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXIoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcmKTsKICAgICB+V29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihTY3JpcHREZWJ1
Z0xpc3RlbmVyKik7Ci0gICAgdm9pZCByZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVy
Kik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiwgYm9vbCBz
a2lwUmVjb21waWxlKTsKIAogICAgIHZvaWQgaW50ZXJydXB0QW5kUnVuVGFzayhQYXNzT3duUHRy
PFNjcmlwdERlYnVnU2VydmVyOjpUYXNrPik7CiAKLSAgICB2b2lkIHJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgdmlydHVhbCBMaXN0ZW5lclNldCog
Z2V0TGlzdGVuZXJzRm9yR2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlk
ZSB7IHJldHVybiAmbV9saXN0ZW5lcnM7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoSlND
OjpKU0dsb2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250
aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyB9Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNDb250ZW50U2NyaXB0KEpTQzo6RXhlY1N0YXRlKikgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpIG92ZXJy
aWRlOwogCiAgICAgV29ya2VyR2xvYmFsU2NvcGUqIG1fd29ya2VyR2xvYmFsU2NvcGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwCmluZGV4IDZjMzRiYjIuLjJhN2E2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwCiAgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVCYWNrZW5kRGlzcGF0
Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkK
K3ZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmgKaW5kZXggNGI4NjJhYS4uNTJkOGUwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
aApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZvaWQgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0
YXR1cyhGcmFtZSopOwogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYzA4NDk5MC4u
MDFhNTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmQKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ1NTQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0
ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24p
CiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmgKaW5kZXggZGNiYTkxYS4uMTBiNGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBmb3JjZVBzZXVkb1N0YXRlKEVsZW1lbnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlw
ZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCBiMzA2ZmFhLi45NTI1
OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNB
Z2VudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnQKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ2FudmFzQmFja2VuZERpc3BhdGNoZXI6OmNy
ZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggM2JjN2IxMS4uYTlhMzhlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKQEAgLTY2LDcg
KzY2LDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JDYW52YXNBZ2VudCgpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIq
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJhbWUqKTsKICAgICB2b2lkIGZyYW1lRGV0YWNoZWQo
RnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHAKaW5kZXggYTI0MzI1YS4uNzAxYWVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTEzMCw3ICsxMzAs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbgogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJ
bnNwZWN0b3JDb25zb2xlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hl
ciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5j
bGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5oCmluZGV4IDVmOThjMzYuLjYyM2JjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SUQsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpFeGVjU3RhdGUqID0gbnVsbHB0ciwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGE2ZWI1MTAuLmUzOWE2
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+SW5zcGVjdG9y
Q29udHJvbGxlcigpCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURl
c3Ryb3llZCgpCiB7Ci0gICAgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgZGlzY29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZE9iamVjdEJlaW5nRGVz
dHJveWVkKTsKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY29ubmVjdCgpOwogICAg
IG1faW5zcGVjdG9yQ2xpZW50LT5pbnNwZWN0b3JEZXN0cm95ZWQoKTsKICAgICBtX2luc3BlY3Rv
ckNsaWVudCA9IG51bGxwdHI7CkBAIC0yNjYsMTIgKzI2NiwxMiBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGZyb250
ZW5kQ2hhbgogI2VuZGlmCiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5k
KEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGlmICghbV9pbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fYWdlbnRzLndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXItPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9z
ZSgpCiB7CiAgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0
dXJuOwotICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7CiAgICAgbV9p
bnNwZWN0b3JDbGllbnQtPmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggODllOTc4MC4u
NDA1ZTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbW90ZUZyb250
ZW5kKCkgY29uc3Q7CiAKICAgICB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0
UmVhc29uKTsKICAgICB2b2lkIHNldFByb2Nlc3NJZChsb25nKTsKIAogI2lmIEVOQUJMRShSRU1P
VEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggNzJiZjg1NS4uZjI0Y2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmQKICAgICAgICAgZm9jdXNOb2RlKCk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggYWIyOTk5MC4uMTM0NWJjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTExMiw3ICsxMTIsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyB0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJl
YXNvbikgb3ZlcnJpZGU7CiAKICAgICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKICAg
ICB2b2lkIHJlc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggN2Y5MjFhMy4uOTdiMjkxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yCiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNo
ZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50LmgKaW5kZXggYTU4ZjQ4ZC4uYzMyMzc4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC04Miw3
ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGJv
b2wgaXNET01FdmVudCwgY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuY3BwCmluZGV4IDlmNTI5YWIuLjI1YzZmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckRPTVN0b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tl
bmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKaW5kZXggYzYyYWE3MS4uNWFkMmI3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAg
dmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDMx
YTYxZDguLjI4NjFlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZybwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEYXRhYmFzZUJh
Y2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12
b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkKK3ZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXgg
NmZiNzEwOC4uMzIyOTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IDZlOTBiMzQuLjk2M2FjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk1LDEyICs5NSwx
MiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiAgICAgbV9lbmFibGVk
ID0gdHJ1ZTsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3Zv
aWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiB7CiAgICAgbV9qYXZhU2NyaXB0QnJlYWtwb2ludHMuY2xlYXIoKTsKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckRlYnVnZ2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBz
dG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKTsKKyAgICBzdG9wTGlzdGVuaW5nU2NyaXB0
RGVidWdTZXJ2ZXIoaXNCZWluZ0Rlc3Ryb3llZCk7CiAgICAgY2xlYXJSZXNvbHZlZEJyZWFrcG9p
bnRTdGF0ZSgpOwogCiAgICAgaWYgKG1fbGlzdGVuZXIpCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBpZiAo
IW1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzYWJsZSgpOworICAgIGRpc2Fi
bGUoZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJv
bnRlbmRDaGFubmVsLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciogYmFja2VuZERpc3BhdGNo
ZXIpCkBAIC0xMzMsMTIgKzEzMywxMyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVyOjpj
cmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIAotICAgIGRpc2FibGUoKTsK
KyAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24gPT0gSW5zcGVjdG9yRGlzY29ubmVjdFJl
YXNvbjo6SW5zcGVjdGVkT2JqZWN0QmVpbmdEZXN0cm95ZWQ7CisgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50
c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgYWN0aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggZjk5YWEzOC4uYWRiNzc5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1BhdXNlZCgpOwogICAgIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSk7CkBAIC0xMjgs
MTQgKzEyOCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcihib29sIGlzQmVp
bmdEZXN0cm95ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAgICAgSW5zcGVjdG9yOjpJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcigpIGNvbnN0IHsgcmV0dXJu
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29s
IGlzQmVpbmdEZXN0cm95ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVzZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29udGludWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENsZWFyR2xvYmFsT2Jq
ZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmNwcAppbmRleCA1NDgzMGJjLi43Nzc1MzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG8KICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXI6OmNy
ZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKaW5kZXggOTgw
NGZlNC4uYzk0ODIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHVpZCkgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24p
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJp
bmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4
IGRiNDUxZmQuLmFmM2M1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTc0LDcgKzU3NCw3IEBAIHZvaWQgSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckluZGV4
ZWREQkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwog
fQogCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZCgpCit2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAppbmRleCBhZTYxOTg4Li5kMDcxYTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaApA
QCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckluZGV4ZWREQkFnZW50KCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4KICAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKaW5kZXggYzRiODc4OS4uYzQ1YTA0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50
LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZQogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnB1dEJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUo
YmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9ySW5wdXRBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNv
bikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRleCA4OGViOTMzLi5mMTUy
YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50
LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JJbnB1dEFnZW50KCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIHNp
bXVsYXRpbmcgaW5wdXQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoS2V5RXZlbnQoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBk
b3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25zdCBTdHJpbmcqIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNvbnN0IGludCogd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBjb25zdCBp
bnQqIG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBjb25zdCBib29sKiBpc0tl
eXBhZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggYzBm
YzI2MC4uMDg2ZTNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckxheWVyVHJlZUJh
Y2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12
b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZCgpCit2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCmlu
ZGV4IDcyMWIzMTAuLjc1NjFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwq
LCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNldCgpOwog
CiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGI3NGMzNTMuLjE2NGQ5MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50
LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udAogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JNZW1vcnlCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRl
KGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JNZW1vcnlB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJl
YXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCmluZGV4IGM1YzEwYWYu
LjEyZjNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1v
cnlBZ2VudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JNZW1vcnlBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRET01Db3VudGVy
cyhFcnJvclN0cmluZyosIGludCogZG9jdW1lbnRzLCBpbnQqIG5vZGVzLCBpbnQqIGpzRXZlbnRM
aXN0ZW5lcnMpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGU0N2ZmZGQuLjBlZDBlMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zNjIsNyArMzYy
LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW4KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
SW5zcGVjdG9yUGFnZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCA3
NzQxNTNhLi44M2QxMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW5zcGVj
dG9yIENvbnRyb2xsZXIgQVBJCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENyb3NzLWFnZW50cyBBUEkKICAgICBQ
YWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggMWYyNWEzZS4uMTEzZGI3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCByZWNvbXBpbGVTY3JpcHQoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgUGFnZVNj
cmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsK
KyAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucygpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2ZpbGluZyhjb25z
dCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZQpAQCAtMjAyLDIzICsyMDIsMjIgQEAgdm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKiBy
ZXN1bHQpCiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5n
KikKIHsKLSAgICBpZiAoZW5hYmxlZCgpKQotICAgICAgICByZXR1cm47CiAgICAgZW5hYmxlKGZh
bHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nKikKIHsKLSAgICBkaXNhYmxlKCk7CisgICAgZGlzYWJsZShmYWxzZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6OmRpc2FibGUoYm9vbCBza2lwUmVjb21waWxlKQogewogICAgIGlmICghbV9lbmFibGVk
KQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7CiAgICAgbV9wcm9maWxl
SGVhZGVyc1JlcXVlc3RlZCA9IGZhbHNlOwotICAgIHJlY29tcGlsZVNjcmlwdCgpOworICAgIGlm
ICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlU2NyaXB0KCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSkKQEAgLTMz
MywxNCArMzMyLDE1IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IEluc3BlY3RvclByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNr
ZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQcm9maWxlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCiAgICAgc3RvcCgpOwotICAgIEVycm9yU3Ry
aW5nIGVycm9yOwotICAgIGRpc2FibGUoJmVycm9yKTsKKworICAgIGJvb2wgc2tpcFJlY29tcGls
ZSA9IHJlYXNvbiA9PSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RC
ZWluZ0Rlc3Ryb3llZDsKKyAgICBkaXNhYmxlKHNraXBSZWNvbXBpbGUpOwogfQogCiB2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KEVycm9yU3RyaW5nKikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IDJhMmI3ZmIu
LmQzNzkzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
cm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0KEVycm9yU3RyaW5nKiA9IG51bGxwdHIpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKEVycm9yU3RyaW5nKiA9IG51bGxwdHIpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaXNh
YmxlKCk7CisgICAgdm9pZCBkaXNhYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgdm9pZCBl
bmFibGUoYm9vbCBza2lwUmVjb21waWxlKTsKICAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2VuYWJsZWQ7IH0KICAgICBTdHJpbmcgZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9m
aWxlTmFtZShib29sIGluY3JlbWVudFByb2ZpbGVOdW1iZXIgPSBmYWxzZSk7CkBAIC05Miw3ICs5
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUHJvZmlsZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgdHlwZSwgaW50IHVpZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBy
ZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVSZWNvcmRCdXR0b24oYm9v
bCBpc1Byb2ZpbGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggMzI0NGQ3ZS4uNzgzZDAxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAt
ODMsNyArODMsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIgPSBJbnNwZWN0b3JOZXR3b3JrQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5k
RGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
KQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaAppbmRleCBjOTUwYjcxLi5kMmNhMmEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTgxLDcg
KzgxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwog
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBlNGE0ZDU3Li5mOGE2YzM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBA
IC03Myw3ICs3Myw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IEluc3BlY3RvclRpbWVsaW5lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNr
ZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCAyZjRmN2RlLi40YzVlZDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTEz
Miw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIG1h
eENhbGxTdGFja0RlcHRoLCBjb25zdCBib29sKiBpbmNsdWRlRG9tQ291bnRlcnMpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAppbmRleCAw
ZmJkYmRkLi5iODEwOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEluc3BlY3Rvcldv
cmtlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JGcm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JXb3JrZXJCYWNrZW5k
RGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9p
ZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX3Nob3VsZFBhdXNlRGVkaWNhdGVkV29y
a2VyT25TdGFydCA9IGZhbHNlOwogICAgIGRpc2FibGUobnVsbHB0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDNhOTUxNDQuLjc1
M2M5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yV29ya2VyQWdl
bnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNv
bikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24KICAgICBib29sIHNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25TdGFydCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXgg
MGMwMThiZS4uNWE3MzVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURl
YnVnZ2VyQWdlbnQuY3BwCkBAIC02NSw5ICs2NSw5IEBAIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6
OmVuYWJsZSgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRQYWdlRGVidWdnZXJBZ2Vu
dCh0aGlzKTsKIH0KIAotdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIFBh
Z2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsKLSAgICBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCk7CisgICAgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlzYWJsZShpc0JlaW5nRGVzdHJveWVkKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldFBhZ2VEZWJ1Z2dlckFnZW50KG51bGxwdHIpOwogfQogCkBAIC03Niw5ICs3Niw5IEBA
IHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIo
KQogICAgIHNjcmlwdERlYnVnU2VydmVyKCkuYWRkTGlzdGVuZXIodGhpcywgbV9wYWdlQWdlbnQt
PnBhZ2UoKSk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnN0b3BMaXN0ZW5pbmdTY3Jp
cHREZWJ1Z1NlcnZlcigpCit2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKQogewotICAgIHNjcmlwdERlYnVn
U2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9wYWdlQWdlbnQtPnBhZ2UoKSk7CisgICAg
c2NyaXB0RGVidWdTZXJ2ZXIoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBtX3BhZ2VBZ2VudC0+cGFn
ZSgpLCBpc0JlaW5nRGVzdHJveWVkKTsKIH0KIAogUGFnZVNjcmlwdERlYnVnU2VydmVyJiBQYWdl
RGVidWdnZXJBZ2VudDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAppbmRleCAwYTU3OWFjLi40ZGQxNzMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaApAQCAtNTQsMTEgKzU0
LDExIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVy
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1Nl
cnZlcihib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFnZVNj
cmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1bm11dGVD
b25zb2xlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAKaW5kZXggZDNmNmY1Ni4uMDM0MjY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFBh
Z2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyb250ZW5kQwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JSdW50
aW1lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KQordm9pZCBQYWdlUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCBmMGNiYTQ0Li5lNjJjMzNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTU0LDcg
KzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNTU4
ZjljYS4uOGYzMzc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcApAQCAtMTIyLDkgKzEyMiw5IEBAIHZvaWQgV29ya2VyRGVidWdnZXJB
Z2VudDo6c3RhcnRMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpCiAgICAgc2NyaXB0RGVidWdT
ZXJ2ZXIoKS5hZGRMaXN0ZW5lcih0aGlzKTsKIH0KIAotdm9pZCBXb3JrZXJEZWJ1Z2dlckFnZW50
OjpzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQordm9pZCBXb3JrZXJEZWJ1Z2dlckFn
ZW50OjpzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVk
KQogewotICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAg
c2NyaXB0RGVidWdTZXJ2ZXIoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBpc0JlaW5nRGVzdHJveWVk
KTsKIH0KIAogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OnNj
cmlwdERlYnVnU2VydmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5oCmluZGV4IGVhZGQ3NDIuLjhhMDMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgaW50ZXJydXB0QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5k
cyhXb3JrZXJUaHJlYWQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1Njcmlw
dERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdT
Y3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVu
aW5nU2NyaXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggY2Q2OTg1NC4uZWJiY2ZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsCiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
Ojp+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5yZXNldCgpOwotICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rl
c3Ryb3llZCk7CiB9CiAKIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZy
b250ZW5kKCkKQEAgLTEyNywxMSArMTI3LDEyIEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQobV9mcm9udGVuZENoYW5uZWwuZ2V0KCksIG1fYmFja2VuZERpc3BhdGNoZXIuZ2V0
KCkpOwogfQogCi12b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9u
dGVuZCgpCit2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVu
ZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBpZiAoIW1fZnJvbnRl
bmRDaGFubmVsKQogICAgICAgICByZXR1cm47Ci0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKTsKKworICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKHJlYXNvbik7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgp
OwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKICAgICBtX2Zyb250ZW5kQ2hhbm5l
bCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBmZTZmZGE3Li43YjI0M2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAg
LTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIH5Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7
CiAKICAgICB2b2lkIGNvbm5lY3RGcm9udGVuZCgpOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250
ZW5kKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JE
aXNjb25uZWN0UmVhc29uKTsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChj
b25zdCBTdHJpbmcmKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lk
IHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1
bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50LmNwcAppbmRleCA5YjY0MGQ3Li42YzQwMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFdv
cmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbgogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JSdW50
aW1lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZCgpCit2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
UnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50LmgKaW5kZXggZTkwMjJiMi4uMDNlYWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+V29ya2VyUnVudGltZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gUHJvdG9jb2wg
Y29tbWFuZHMuCiAgICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAppbmRleCBjMWYyNjUyLi4xZTYwYmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkluc3BlY3RvckZvcndhcmRpbmcuaCIKICNpbmNsdWRlICJNYWluRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCkBAIC04NCw3ICs4NSw3IEBA
IHZvaWQgUGFnZURlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIGNoYW5uZWwpCiB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KCkKIHsK
ICAgICBJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyID0gbV9wYWdlLmlu
c3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpbnNwZWN0b3JDb250cm9sbGVyLmRpc2Nvbm5lY3RG
cm9udGVuZCgpOworICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29ubmVjdEZyb250ZW5kKElu
c3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBpbnNw
ZWN0b3JDb250cm9sbGVyLnNldEhhc1JlbW90ZUZyb250ZW5kKGZhbHNlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJlYjY5ZDkuLjQ3NDdkN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRlICJW
aWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUg
PGJ5dGVjb2RlL0NvZGVCbG9jay5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dEJhc2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpA
QCAtMTQ2NCw3ICsxNDY1LDggQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JG
cm9udGVuZCgpCiAgICAgQVNTRVJUKHBhZ2UpOwogICAgIEFTU0VSVChtX2Zyb250ZW5kV2luZG93
KTsKIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQo
KTsKKyAgICAvLyBUcmVhdCB0aGlzIGFzIGlmIHRoZSBwYWdlIHdlIGFyZSBpbnNwZWN0aW5nIGlz
IGNsb3NpbmcuCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRPYmplY3RCZWluZ0Rlc3Ry
b3llZCk7CiAKICAgICBtX2Zyb250ZW5kQ2hhbm5lbC5yZWxlYXNlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggZDUwNGFkMi4u
M2U3YzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MjgsNyAr
NDI5LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y29ubmVjdFRvSW5zcGVjdG9yKFdv
cmtlckdsb2JhbFNjb3BlUHJveHk6OlBhZ2VJbnNwZWMKIHN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RG
cm9tV29ya2VyR2xvYmFsU2NvcGVJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGJvb2wpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
Y29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICBzdGF0aWNfY2FzdDxXb3JrZXJH
bG9iYWxTY29wZSo+KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29u
bmVjdEZyb250ZW5kKCk7CisgICAgc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihjb250
ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNw
ZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNDA3Zjk2Zi4uMjk1ZjY3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgIEluY2x1ZGUg
SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4KKwogMjAxNC0wMS0xOSAgUnl1YW4gQ2hvaSAgPHJ5
dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0sxXSBSZW1vdmUgYW5kIHJl
ZmFjdG9yIHRoZSBBUElzIHdoaWNoIHVzZSBzaW5nbGUgYW5kIGJhc2Uga2V5d29yZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVm
bC5jcHAKaW5kZXggY2ExOGY5Ni4uMzJlNDA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjEzLDcgKzIxNCw3IEBAIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQpCiB2b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wg
bm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKIHsKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29u
dHJvbGxlcikKLSAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgICAgICBFV0tQ
cml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6
RnJvbnRlbmREaXNjb25uZWN0ZWQpOwogCiAgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50KQogICAg
ICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IGY1NWU4ZGIuLjdmYTU4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyB0
aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3Bl
Y3RvcldpbmRvdyk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4K
KwogMjAxNC0wMS0yMiAgVGhpYWdvIGRlIEJhcnJvcyBMYWNlcmRhICA8dGhpYWdvLmxhY2VyZGFA
b3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbRUZMXVtHVEtdIEdldCBFRkwgYW5kIEdUSyBjb21w
aWxpbmcgd2l0aCBBQ0NFU1NJQklMSVRZIGRpc2FibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCBjZGFk
OGY3Li42NDdiMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5o
IgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTg5LDcgKzE5MCw3IEBAIHZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9vbCBub3Rp
ZnlJbnNwZWN0b3JDb250cm9sCiAgICAgfQogCiAgICAgaWYgKG5vdGlmeUluc3BlY3RvckNvbnRy
b2xsZXIpCi0gICAgICAgIGNvcmUobV9pbnNwZWN0ZWRXZWJWaWV3KS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgICAgICBjb3JlKG1faW5zcGVjdGVkV2Vi
VmlldyktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpGcm9udGVuZERpc2Nvbm5lY3RlZCk7CiAKICAg
ICBpZiAobV9pbnNwZWN0b3JDbGllbnQpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxl
YXNlRnJvbnRlbmRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzdlYWNmNS4uN2I2ZTQ1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2lu
ZG93Q29udHJvbGxlciBkZXN0cm95SW5zcGVjdG9yVmlldzpdKToKKyAgICAgICAgSW5jbHVkZSBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIyICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4IGZvciBpT1MgY2xpZW50cyBvZiBX
ZWJVSURlbGVnYXRlUHJpdmF0ZS5oLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDMyYTcyNzAuLmZkNmMwNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5h
bC5oIgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8YmluZGluZ3MvU2NyaXB0VmFsdWUu
aD4KKyNpbXBvcnQgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JG
cm9udGVuZENsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KQEAgLTY5Myw3
ICs2OTQsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphcHBlbmQoY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFN0cmluZwogCiAgICAgaWYgKG5vdGlmeUluc3Bl
Y3RvckNvbnRyb2xsZXIpIHsKICAgICAgICAgaWYgKFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBbX2lu
c3BlY3RlZFdlYlZpZXcuZ2V0KCkgcGFnZV0pCi0gICAgICAgICAgICBpbnNwZWN0ZWRQYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgICAgICAgICBp
bnNwZWN0ZWRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6RnJvbnRlbmREaXNjb25uZWN0ZWQp
OwogICAgIH0KIAogICAgIFJldGFpblB0cjxXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyPiBw
cm90ZWN0KHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDk2ZTQ1OWEuLjlmMGE1MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBy
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JWaWV3KToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JE
aXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIxICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZv
QG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bQ3VybF0gRG93bmxvYWQgcmVxdWVz
dCBoYXMgaW5jb3JyZWN0IHVzZXIgYWdlbnQgc3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggZjIy
YjcwOS4uOTc2MzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01lc3Nh
Z2VCcm9hZGNhc3Rlci5oPgogCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFz
ZS5oPgogI2luY2x1ZGUgPHdjaGFyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CkBAIC00MzgsNyArNDM5LDcgQEAg
dm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZpZXcoYm9v
bCBub3RpZnlJbnNwZWN0b3JDb250cm8KICAgICBjbG9zZVdpbmRvd1dpdGhvdXROb3RpZmljYXRp
b25zKCk7CiAKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikgewotICAgICAgICBt
X2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworICAgICAgICBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICAgICAgbV9pbnNwZWN0
b3JDbGllbnQtPnVwZGF0ZUhpZ2hsaWdodCgpOwogICAgIH0KICAgICA6OkRlc3Ryb3lXaW5kb3co
bV9mcm9udGVuZEh3bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDAzZDBjYTQuLjMzMDE0N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNsb3NlV2luZG93KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yOjpyZW1vdGVGcm9udGVuZERpc2Nvbm5lY3RlZCk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbi4KKwogMjAxNC0wMS0yMiAgRGF2aWQgRmFybGVyICA8ZGZhcmxl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgQVNBTiBidWlsZHMgYXJlIGJyb2tlbiAtIG1pc3Npbmcg
ZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKaW5kZXgg
MDU4ZjBmZi4uMzk2ZWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckNv
bnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFz
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTU3LDcgKzU4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6YnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xv
c2VXaW5kb3coKQogewotICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246OkZyb250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBtX3BhZ2UtPmluc3Bl
Y3RvcigpLT5kaWRDbG9zZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDQzMDUyMmIuLmM5YTM2OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIu
aD4KKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVkZSA8
YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZS5oPgogCkBAIC0zMjYsNyArMzI3LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnJlbW90ZUZy
b250ZW5kQ29ubmVjdGVkKCkKIHZvaWQgV2ViSW5zcGVjdG9yOjpyZW1vdGVGcm9udGVuZERpc2Nv
bm5lY3RlZCgpCiB7CiAgICAgQVNTRVJUKG1fcmVtb3RlRnJvbnRlbmRDb25uZWN0ZWQpOwotICAg
IG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246OkZy
b250ZW5kRGlzY29ubmVjdGVkKTsKICAgICBtX3JlbW90ZUZyb250ZW5kQ29ubmVjdGVkID0gZmFs
c2U7CiB9CiAjZW5kaWYK
</data>
<flag name="review"
          id="245911"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222031</attachid>
            <date>2014-01-23 15:12:33 -0800</date>
            <delta_ts>2014-01-23 16:01:08 -0800</delta_ts>
            <desc>[PATCH] For Bots 1</desc>
            <filename>for-bots-1.patch</filename>
            <type>text/plain</type>
            <size>124725</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzBmYjc0Li5lOGQyOTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTQtMDEt
MjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0
RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IGluIHRlc3RzLiBCcmVha3Bv
aW50cyBhcmUgYWxyZWFkeQorICAgICAgICBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGVzdHMuIEFs
c28gc2luY2UgdGhlIERlYnVnZ2VyQWdlbnQuZW5hYmxlKCkgY2FsbAorICAgICAgICBub3cgaW1t
ZWRpYXRlbHkgcmVjb21waWxlcyBzY3JpcHRzLCBzb3VyY2VQYXJzZWQgZXZlbnRzIGFyZSBub3cg
c2VudCB0bworICAgICAgICB0aGUgZnJvbnRlbmQgZWFybGllciBldmVuIGJlZm9yZSB0aGUgc2V0
QnJlYWtwb2ludHNBY3RpdmUgbWVzc2FnZSBoYXMKKyAgICAgICAgYmVlbiBwcm9jZXNzZWQsIHNv
IHRoZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IHdhcyBzaG93aW5nIHVwCisgICAgICAg
IGxhdGVyLCBzZWVtaW5nbHkgcmFuZG9tbHkgaW4gdGVzdHMsIGFuZCBpcyBubyBsb25nZXIgaGVs
cGZ1bC4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRp
dGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRo
LWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1p
bnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1h
Y3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
dGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Nh
bGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxl
LXByb2Jlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQ
YXVzZU9uRXhjZXB0aW9ucy1hbGwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVt
b3ZlZC5odG1sOgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVg6IFdlYktpdCBjb25jYXRlbmF0ZXMgbmFtZSBvZiBhbGwgdG9v
bGJhciBidXR0b25zIGluIHRoZSBhcHBsZS5jb20gdmlkZW8gcGxheWVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CmluZGV4IDY0NmUzOTAu
LmE3MzFiMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxl
IGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGlu
dWUgZXhlY3V0aW5nIGNvZGUuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9p
bnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMp
CiBDbG9zaW5nIHRoZSBpbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0
YWNoLmh0bWwKaW5kZXggOTUxMDIxMS4uYmFjOGY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2guaHRtbApAQCAtNTAsOSArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDU3ZDI5NjMuLmJkNDEwZjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwu
Y2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CmluZGV4IGRlNmM4NGMuLjNiOTQ3M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCkBAIC00NywxMCArNDcsNiBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAg
fSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKaW5kZXggYmFlODc3Mi4uNzg4NmQ3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4g
YWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1
Z2dlci4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKIENsb3NpbmcgdGhl
IGluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRt
bAppbmRleCAzNTIwYjQ5Li42MTdlZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29u
ZGl0aW9uLWRldGFjaC5odG1sCkBAIC01MCwxMCArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDk1NWFhMDUuLjVi
MWUyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0
aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1
c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGNv
bmRpdGlvbnMuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGlu
c2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBU
aGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiB0aGUgZXhjZXB0aW9uIGluc2lkZSB0aGUg
Y29uZGl0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24uaHRtbAppbmRleCA4NzhkNjU0Li5jMWZjMjE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
d2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApAQCAtNDYs
MTAgKzQ2LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0Zv
ckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1l
dmFsLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDAxYjg0ZDguLmU3MDEyYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBA
QAogV2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxk
IGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCiAKLUJyZWFrcG9p
bnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50QmFzaWMK
IFBBU1M6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIm90aGVyIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13
aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IGUyYmNlNTIuLjk2
YTMwMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9u
Lmh0bWwKQEAgLTU2LDEwICs1Niw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHth
Y3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBjYjVhZjVlLi5hMzM0ODQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRoZSBk
ZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1
dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCBicmVha3BvaW50LmpzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjoo
MikgYStiOigzKQogRXhlY3V0aW5nIGNvbmRpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1h
bmQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy5odG1sCmluZGV4IDZjMWNj
NTkuLmEyZTU4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwKQEAgLTYwLDEwICs2MCw2IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCAxMGUyYWZjLi4wYTVmNmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
PHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcg
dGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUuaHRtbAppbmRleCA2ZDkxZjkwLi5mNjU2OWRhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCkBAIC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIC8vIGNhbGwgZnJhbWUgZnVuY3Rpb25OYW1lcyBhcmUgd2hhdCB3ZSBleHBlY3QuCiAK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhwZWN0
ZWQudHh0CmluZGV4IGY0MTJlNTAuLjBiOTRjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxl
ZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKaW5kZXggODhiOTJmYi4uZjA2ZTEzNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtdGhpcy1ob3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFtZSB0aGlzIHZhbHVlcyBhcmUgd2hhdCB3ZSBl
eHBlY3QuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUi
LCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtw
b2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dAppbmRleCBjMWRiMDAzLi45MTRkMDA0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10
aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8
c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmluZyB0
ZXN0RnVuY3Rpb24KIFBBU1M6IHN0ZXAgMDogdHlwZSAib2JqZWN0IiBjbGFzc05hbWUgIk51bWJl
ciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sCmluZGV4IGFjNTY0
NDQuLjUwNzg5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRt
bApAQCAtMTIsOSArMTIsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBjYWxsIGZyYW1lIHRo
aXMgdmFsdWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQi
KTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1zdHJpY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0CmluZGV4IGE5NjgzZjQu
LjdjN2IyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6
Y29sdW1uIGluIDxzY3JpcHQ+CiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIDxzY3JpcHQ+
CiBSdW5uaW5nIHRlc3RGdW5jdGlvbgogUEFTUzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZhbHVl
ICIyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWwKaW5kZXggMjhiOGMwZi4u
YTVlZjhjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sCkBAIC0xMiw5
ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGNhbGwgZnJhbWUgdGhpcyB2YWx1ZXMg
YXJlIHdoYXQgd2UgZXhwZWN0LgogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0p
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUt
cHJvYmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3
MTM3MDUuLmQ4YjViYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIu
c2V0QnJlYWtwb2ludCB3aXRoIG11bHRpcGxlIHByb2JlIGFjdGlvbnMgYXQgdGhlIHNhbWUgYnJl
YWtwb2ludC4gVGVzdCBEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSBldmVudHMgZm9yIHRoZSBwcm9i
ZSBzYW1wbGVzLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBQ
QVNTOiBTaG91bGQgcmVjZWl2ZSB0d28gYnJlYWtwb2ludCBhY3Rpb24gaWRlbnRpZmllcnMgb24g
RGVidWdnZXIuc2V0QnJlYWtwb2ludCBjYWxsYmFjay4KIFJ1bm5pbmcgYnJlYWtwb2ludEFjdGlv
bnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmluZGV4IGNmMGUzZjUuLjE2ODA2YWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKQEAgLTgsOSAr
OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIu
Li8uLi8uLi8uLi9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb2JlLWhlbHBlci5qcyIp
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIHNhbXBs
ZXMgPSBbXTsKICAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0gMjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9y
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
bmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY3OTAzNTkuLjYyYzJkZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQt
aW5zcGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYg
QEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjogUEFTUzogRXhwZWN0ZWQgZXhjZXB0
aW9uCiBDaGVja2luZyB0aGF0IHRoZSBpbnNwZWN0b3IgY29kZSBjYW4gYmUgZGVidWdnZWQgdXNp
bmcgYSBzZWNvbmQgaW5zcGVjdG9yIHdpbmRvdy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwKIFBBU1M6IFBhdXNlZCEKIFBBU1M6IFJl
c3VtZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCmluZGV4IGI2YmI3M2QuLmY0NWMwMjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCkBAIC05LDE1ICs5LDEyIEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJ1bnMgaW4gdGhlIHNlY29uZCBpbnNw
ZWN0b3Igd2luZG93LiBXZSBjYW4gdXNlIHRoaXMgb25lIHRvIGRlYnVnIHRoZSBmaXJzdCBpbnNw
ZWN0b3IuCiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5h
YmxlIiwge30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNl
cHRpb25zIC0gYWxsIik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7CiAKLSAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGFuIGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAi
c2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdQQVNTOiBFeHBlY3RlZCBl
eGNlcHRpb24nKSB9LCAwKTsifSk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIFRy
aWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4KKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignUEFTUzogRXhwZWN0ZWQg
ZXhjZXB0aW9uJykgfSwgMCk7In0pOwogICAgICAgICB9KTsKIAogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDFmYWI0
M2QuLmQ5MDYwNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50CiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIFNldCBCcmVha3BvaW50LCBUcmlnZ2VyaW5n
IGl0CiBpbnNpZGUgYnJlYWtwb2ludEJhc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbAppbmRl
eCBlNDIwMGE5Li4yNTU2MTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKQEAgLTYsOSAr
Niw2IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0g
ICAgfSk7CiAKICAgICB2YXIgYnJlYWtwb2ludFRyaWdnZXJlZCA9IDA7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFj
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODIxYzYyZC4uODI0
MjFhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTYsNyArNiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlvbgog
Q09OU09MRSBNRVNTQUdFOiBsb2ctYWN0aW9uLWFmdGVyCiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50
IG9wdGlvbnMuYWN0aW9ucwogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50
LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5v
dCB0cmlnZ2VyCiBpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMSkgYjoodW5kZWZpbmVkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCmluZGV4IDExYjY5YWEuLmI0NmFmM2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwKQEAgLTEwLDkgKzEwLDYgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xl
LmVuYWJsZSIsIHt9KTsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7CiAgICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxl
cyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS1leHBlY3RlZC50eHQKaW5kZXggOGM2MjIwZi4uNmM2YTRkNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRp
bnVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51ZQogCi1CcmVh
a3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRB
dXRvbWF0aWNhbGx5Q29udGludWUgbXVsdGlwbGUgdGltZXMgd2l0aCBhdXRvbWF0aWNhbGx5IGNv
bnRpbnVlCiBpbnNpZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
YXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCA2NGI4MzQ1Li5kNDRhYzNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNiw5
ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBhbGxvd2VkVG9IaXRCcmVha3BvaW50ID0gZmFsc2U7CiAgICAg
dmFyIGJyZWFrcG9pbnRJZGVudGlmaWVyID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0CmluZGV4IGE3YjJkYWQuLjQ4NTQ1NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbHVtbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUg
QEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAot
QnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9u
CiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKaW5kZXgg
NzNlYTk0Yi4uODdmYWNkNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBA
IC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGJ5IHJ1bm5pbmcgc29tZSBl
eHByZXNzaW9ucyBhdCB0aGF0IGNhbGwgZnJhbWUuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVk
Iik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbmRpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDlkNzc3
ZDAuLmE1MmU2YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0
aW9ucy5jb25kaXRpb24KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5q
cwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBsZSB0aW1lcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bmRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKaW5kZXggMTkwMzU4Ny4uZTc2NGU0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29uZGl0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKQEAgLTYsOSArNiw2IEBACiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAgICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDllYTQ5OTcuLjk0
M2RiYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1
IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MCBpbiA8c2NyaXB0IHNyYz0iLi4u
Ij4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUEFTUzogUmVj
ZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludCBhdCBz
cGVjaWZpZWQgbG9jYXRpb24gYWxyZWFkeSBleGlzdHMuCiBSdW5uaW5nIGJyZWFrcG9pbnRCYXNp
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRp
b24tZXhwZWN0ZWQudHh0CmluZGV4IDZkZWJjN2IuLmE5OTdmNDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAndGhpcy53aWxsLmNhdXNlJykKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25k
aXRpb24gb3Igb3B0aW9ucy5hY3Rpb24gd2l0aCBleGNlcHRpb24KIAotQnJlYWtwb2ludHMgRW5h
YmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlv
biB0byB0cmlnZ2VyIGNvbmRpdGlvbiBleGNlcHRpb24uCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwKaW5kZXggNWM5M2M0MS4uYjE1YmRhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCkBAIC05
LDkgKzksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkNvbnNvbGUuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIAogICAgIHZhciBsb2dzU2VlbiA9IDA7CiAgICAgY29uc3QgZXhwZWN0ZWRMb2dzID0g
MjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sCmluZGV4IDkwZjAzNWEuLjdlNzY4YmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQuaHRtbApAQCAtNiw5ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3Rp
dmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwt
ZXhwZWN0ZWQudHh0CmluZGV4IGM1MGRkNzIuLjkwYzExNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNl
VVJMLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50QnlVcmwgaW4gU2NyaXB0IG5hbWVkIHZpYSBz
b3VyY2VVUkwKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgc291cmNlVVJMLXRlc3QuanMK
IFJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVy
bC1zb3VyY2VVUkwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKaW5kZXggMTAxYzJkOC4uMWE3MTZi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBA
IC05LDkgKzksNiBAQCBldmFsKCJmdW5jdGlvbiBzb3VyY2VVUkxGdW5jdGlvbigpIHtcbiAgICB2
YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBjCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKaW5kZXggYTk5YTBkNy4uNjlmN2FiZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDYg
QEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIGFsbAogCi1CcmVha3BvaW50cyBFbmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9u
RXhjZXB0aW9ucyAtIGFsbAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBz
dGF0ZW1lbnRzCiBQYXVzZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0
bWwKaW5kZXggMzE3MWRmYi4uYmVmMzM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0
aW9ucy1hbGwuaHRtbApAQCAtMTAyLDE1ICsxMDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIAog
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2
ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgZnVu
Y3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKLSAgICAgICAgICAgIGV2YWx1
YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3RQ
YXVzZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHJpZ2dlck5leHQoKTsKLSAgICAgICAgICAg
IH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFs
bCIpOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7CisgICAgICAgICAgICB0cmlnZ2VyTmV4dCgpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNl
cHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CmluZGV4IDU3MThkY2QuLmNkZDQ0M2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1ub25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKQEAg
LTEyLDcgKzEyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIG5vbmUKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBub25lCiBQQVNTOiBObyBwYXVzZXMKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLmh0bWwKaW5kZXggYmE4NzBmMy4uNmM2MDcw
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCkBAIC02LDMy
ICs2LDI5IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyAtIG5vbmUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IDEr
MTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgbm9F
eGNlcHRpb24oKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChl
KSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9
IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNo
TmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0
VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7
In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQo
ZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyB9LCAw
KTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3Rl
ZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHt9LmEuYi5jLmQ7IH0sIDAp
OyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkJh
c2ljKCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJl
c3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1N0cmluZygpOyB9LCAwKTsifSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1BhcmFtKHt4OjF9
KTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhy
b3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
fSwgMTApOwotICAgICAgICAgICAgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9u
KHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihy
ZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgMSsxOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IG5vRXhjZXB0aW9uKCk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0Y2ggKGUpIHsg
Y29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShlKSk7IH0gfSwg
MCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChl
eGNlcHRpb25CYXNpYywgMSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7In0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RG
dW5jdGlvbiwgMyk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgY2F0Y2hOZXN0ZWQodGhyb3dTdHJpbmcsIDEwKTsgfSwgMCk7In0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJy
b3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsge30uYS5iLmMuZDsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25CYXNpYygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lv
bjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0s
IDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dTdHJpbmco
KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1Bh
cmFtKHt4OjF9KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0sIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0sIDEwKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDZhMTZiNjcuLjg4OWJmMjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4
cGVjdGVkLnR4dApAQCAtMTksNyArMTksNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNh
dGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gc3RyaW5nIgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjE4
LCJjb2x1bW4iOjEyLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQogRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMgdW5jYXVnaHQKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24g
bm9uLWV4Y2VwdGlvbiBzdGF0ZW1lbnRzIG9yIGNhdWdodCBleGNlcHRpb24gc3RhdGVtZW50cwog
UGF1c2VkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRt
bAppbmRleCBiYmI3YzMzLi4yNWU0MDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbApAQCAtNzksMTUgKzc5LDEyIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAidW5j
YXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodCIpOwot
ICAgICAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0cmlnZ2VyTmV4
dFVuY2F1Z2h0RXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogInVu
Y2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIHVuY2F1Z2h0Iik7CisgICAgICAg
IGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVj
dFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24o
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4
cGVjdGVkLnR4dAppbmRleCBlY2VjNTBiLi43MDlhYjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2Rl
LXJlbW92ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogVGVzdGluZyB0aGF0IERPTS5j
aGlsZE5vZGVSZW1vdmVkIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQgZXZlbiB3aGVuIHRoZSBlbGVt
ZW50IGlzIG1vdmVkIHdoaWxlIHBhdXNlZCBpbiB0aGUgZGVidWdnZXIgb24gYSBET01EZWJ1Z2dl
ciAibm9kZS1yZW1vdmVkIiBicmVha3BvaW50LgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCA8c2NyaXB0PgogU3RvcHBlZCBvbiBET00gYnJlYWtwb2ludAogUEFTUzogb25DaGlsZE5vZGVS
ZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRt
bAppbmRleCAyNTA0ZTQ1Li5iNjYxNmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwKQEAg
LTExOCwxMyArMTE4LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRET01CcmVha3BvaW50Iiwge25vZGVJZDogdGFy
Z2V0RWxlbWVudElkLCB0eXBlOiAibm9kZS1yZW1vdmVkIn0pOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiBmaW5hbENv
bnRhaW5lcklkfSk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7ICAgICAgICAKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhw
cmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5h
YmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBkZjMwMTRmLi4yYjViODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNl
Lmg6CisgICAgICAgIFdoZW4gZGlzY29ubmVjdGluZyBhZ2VudHMsIHByb3ZpZGUgYSBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIGZvcgorICAgICAgICB0aGUgZGlzY29ubmVjdGlvbi4gSXQgY291
bGQgYmUgdGhhdCBhbiBpbnNwZWN0b3IgZnJvbnRlbmQgaXMganVzdAorICAgICAgICBkaXNjb25u
ZWN0aW5nIG9yIHRoYXQgdGhlIGluc3BlY3RlZCBvYmplY3QgaXMgZ29pbmcgYXdheSBlbnRpcmVs
eQorICAgICAgICBhbmQgd2UgY2FuIGF2b2lkIGRvaW5nIHNvbWUgd29yay4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6On5KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUpOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3RJbnRlcm5hbCk6CisgICAgICAgIFBhc3Mg
ZGlmZmVyZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdHMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQWdlbnQuaDoKKyAgICAgICAgUGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIGFyb3Vu
ZCB3aGVyZSBuZWVkZWQuCisKIDIwMTQtMDEtMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTIHdoaXRlc3BhY2UgZGVmaW5pdGlvbiBmb3Ig
Y2hhbmdlcyBpbiBVbmljb2RlIDYuMwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmgKaW5kZXggMjBhZDcxZi4uZjZiNmM1NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oCkBAIC0zNCwxMiArMzQsMTcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bDsKIAorZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHsKKyAgICBJbnNwZWN0
ZWRUYXJnZXREZXN0cm95ZWQsCisgICAgSW5zcGVjdG9yRGVzdHJveWVkCit9OworCiBjbGFzcyBJ
bnNwZWN0b3JBZ2VudEJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50
QmFzZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciop
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nh
cmRBZ2VudCgpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAppbmRleCAyMDNj
OGY2Li5lMGQ5ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCB2
b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZQogICAgICAgICBtX2FnZW50c1tpXS0+ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKGZyb250ZW5kQ2hhbm5lbCwgYmFja2VuZERpc3BhdGNoZXIpOwogfQog
Ci12b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQWdlbnRSZWdpc3RyeTo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX2FnZW50cy5zaXplKCk7IGkrKykKLSAgICAgICAgbV9hZ2VudHNb
aV0tPndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgICAgIG1fYWdlbnRzW2ld
LT53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQogCiB2b2lkIEluc3Bl
Y3RvckFnZW50UmVnaXN0cnk6OmRpc2NhcmRBZ2VudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAppbmRleCAy
ZTg5MDM5Li4xN2Q2NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEluc3BlY3RvckFnZW50QmFzZTsKIGNsYXNzIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwor
ZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOwogCiBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5IHsKIHB1YmxpYzoKQEAgLTQyLDcgKzQzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2Vu
dEJhc2U+KTsKIAogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOwogICAg
IHZvaWQgZGlzY2FyZEFnZW50cygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDc0NjJhYWQuLmQ3YjQ2ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTY4LDEyICs2OCwxMiBAQCB2b2lkIEpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbAogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChmcm9udGVuZENoYW5uZWwsIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwog
fQogCi12b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKCkKK3ZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25u
ZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYg
KCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9h
Z2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICBtX2FnZW50cy53aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9pbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1faW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCmlu
ZGV4IGZmNDFiNTkuLmM0ZmJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICB2b2lk
IGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbik7CiAg
ICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCA2OWJhNWViLi5mY2VlNDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGZy
b250CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rvckluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIElu
c3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3Bl
Y3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA5NDNlZjE2Li5j
N2RjOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkluc3BlY3RvckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVi
dWdnYWJsZS5jcHAKaW5kZXggYzkzM2FhNi4uMmI4OTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAKICNpbmNs
dWRlICJBUElTaGltcy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFnZW50QmFzZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yLmgiCkBAIC00NSw3ICs0Niw3IEBAIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZTo6SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlKEpTR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6On5KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUoKQogewogICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAg
ICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgZGlzY29ubmVjdEludGVybmFsKEluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZCk7CiB9CiAKIFN0cmluZyBK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6Om5hbWUoKSBjb25zdApAQCAtNjUsOSArNjYsMTQgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiBmcm9udGVuZENoYW5uZWwKIAogdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6
OmRpc2Nvbm5lY3QoKQogeworICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOworfQorCit2b2lkIEpTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZTo6ZGlzY29ubmVjdEludGVybmFsKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24g
cmVhc29uKQorewogICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oJm1fZ2xvYmFsT2JqZWN0LnZt
KCkpOwogCi0gICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsK
KyAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcm9udGVuZChyZWFzb24pOwog
ICAgIG1faW5zcGVjdG9yQ29udHJvbGxlciA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgK
aW5kZXggYWFmZjE5OS4uY2YzZWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTMyLDYgKzMyLDEw
IEBACiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZS5oIgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogCituYW1lc3BhY2UgSW5zcGVjdG9yIHsKK2VudW0gY2xhc3MgSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbjsKK30KKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwpAQCAtNTIsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IG92ZXJyaWRlOwogCiBwcml2YXRlOgorICAgIHZvaWQgZGlzY29ubmVjdEludGVybmFsKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOworCiAgICAgSlNHbG9iYWxP
YmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcj4gbV9pbnNwZWN0b3JDb250cm9sbGVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBkZWFiY2UxLi5mYzIwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQxIEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
IHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6
OlNjcmlwdERlYnVnU2VydmVyKToKKyAgICAgICAgUmVtb3ZlIG1fcmVjb21waWxlVGltZXIgYW5k
IHRoZSByZWNvbXBpbGUgc29vbiBmdW5jdGlvbi4KKyAgICAgICAgV2UgY2FuIGp1c3QgcmVjb21w
aWxlIGltbWVkaWF0ZWx5IGluIGFsbCBleGlzdGluZyBjYXNlcy4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1
Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERl
YnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZEFkZEZpcnN0TGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVuZXIpOgorICAg
ICAgICBBZGQgYSAiZGlkQWRkRmlyc3RMaXN0ZW5lciIgdG8gbWF0Y2ggImRpZFJlbW92ZUxhc3RM
aXN0ZW5lciIuCisgICAgICAgIE9ubHkgcmVjb21waWxlIGZ1bmN0aW9ucyB3aGVuIHdlIGF0dGFj
aCB0aGUgZGVidWdnZXIgYW5kIHdoZW4KKyAgICAgICAgd2UgZGV0YWNoIHRoZSBsYXN0IGxpc3Rl
bmVyLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21w
aWxlQWxsSlNGdW5jdGlvbnMpOgorICAgICAgICBTYW1lIHRoaW5nLiBBbHNvIHJlYXJyYW5nZSB0
aGUgZnVuY3Rpb25zIHRvIHJlYWQgYmV0dGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICBVc2UgdGhlIGRpcmVjdCByZWNvbXBpbGUg
ZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVtb3ZlZCAic29vbiIgdmVyc2lvbi4KKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBVcGRhdGUgZGlzY29ubmVjdEZyb250ZW5kIHN5
bWJvbC4KKworICAgICAgICAqIHBhZ2UvUGFnZURlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y2xvc2VEdW1teUluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc2Nvbm5lY3RGcm9tV29ya2VyR2xvYmFsU2NvcGVJbnNw
ZWN0b3JUYXNrKToKKyAgICAgICAgSW5jbHVkZSBhbiBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
IHdoZW4gY2FsbGluZyBkaXNjb25uZWN0RnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICBJZiB0aGUgZGlzY29ubmVj
dCByZWFzb24gaXMgdGhlIHBhZ2Ugd2lsbCBiZSBkZXN0cm95ZWQsIGRvbid0IHJlY29tcGlsZSB3
aGVuIGRpc2Nvbm5lY3RpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgSWYgdGhlIGRpc2Nvbm5lY3QgcmVhc29uIGlzIHRoZSBwYWdl
IHdpbGwgYmUgZGVzdHJveWVkLCBkb24ndCByZWNvbXBpbGUgd2hlbiBkaXNjb25uZWN0aW5nLgor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9zZSk6CisgICAgICAgIFBhc3MgZGlmZmVy
ZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdCByZWFzb25zLgorCisgICAg
ICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0
RnJvbnRlbmQpOgorICAgICAgICBQYXNzIGRpZmZlcmVudCByZWFzb25zIGZvciB0aGUgZGlmZmVy
ZW50IGRpc2Nvbm5lY3QgcmVhc29ucy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52
YXNBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
YXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
cklucHV0QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXll
clRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1v
cnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJEZWJ1Z2dlckFnZW50Ojpz
dG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50Lmg6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiBwYXJhbS4K
KwogMjAxNC0wMS0yMiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFYOiBEbyBub3QgcmV0dXJuIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgYW4gb2JqZWN0
IGp1c3QgYmVjYXVzZSBpdCBoYXMgdGFiaW5kZXg9MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4
ODRmZDJmLi5kMzI5ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjc2Myw3ICsyNzYzLDcg
QEAgX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjVzZWxlY3RDb2xvckluQ29sb3JDaG9v
c2VyRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQzMWRvRGlzcGF0
Y2hNZXNzYWdlT25Gcm9udGVuZFBhZ2VFUE5TXzRQYWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlMTdJbnNwZWN0b3JDb3VudGVyczEyY291bnRlclZhbHVlRU5TMF8xMUNvdW50ZXJUeXBl
RQogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTVjb25uZWN0RnJvbnRlbmRFUE45
SW5zcGVjdG9yMjRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWxFCi1fX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIxOGRpc2Nvbm5lY3RGcm9udGVuZEV2CitfX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIxOGRpc2Nvbm5lY3RGcm9udGVuZEVOOUluc3BlY3RvcjI1SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbkUKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4c2V0
UHJvZmlsZXJFbmFibGVkRWIKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI1ZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZEVsUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOUlu
c3BlY3RvckNvbnRyb2xsZXIyNnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50RU5TdDNfXzExMHVu
aXF1ZV9wdHJJTlNfMjNJbnNwZWN0b3JGcm9udGVuZENsaWVudEVOUzFfMTRkZWZhdWx0X2RlbGV0
ZUlTM19FRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlw
dERlYnVnU2VydmVyLmNwcAppbmRleCAxY2VjN2IzLi44NDA2NzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTk0
LDEzICs5NCwxNSBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIoU2Ny
aXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBhZwogICAgIE93blB0cjxMaXN0ZW5l
clNldD4mIGxpc3RlbmVycyA9IG1fcGFnZUxpc3RlbmVyc01hcC5hZGQocGFnZSwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwogICAgIGlmICghbGlzdGVuZXJzKQogICAgICAgICBsaXN0ZW5lcnMg
PSBhZG9wdFB0cihuZXcgTGlzdGVuZXJTZXQpOworCisgICAgYm9vbCB3YXNFbXB0eSA9IGxpc3Rl
bmVycy0+aXNFbXB0eSgpOwogICAgIGxpc3RlbmVycy0+YWRkKGxpc3RlbmVyKTsKIAotICAgIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOwotICAgIHBhZ2UtPnNldERlYnVnZ2VyKHRoaXMp
OworICAgIGlmICh3YXNFbXB0eSkKKyAgICAgICAgZGlkQWRkRmlyc3RMaXN0ZW5lcihwYWdlKTsK
IH0KIAotdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERl
YnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdlKiBwYWdlKQordm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdl
KiBwYWdlLCBib29sIHNraXBSZWNvbXBpbGUpCiB7CiAgICAgQVNTRVJUX0FSRyhsaXN0ZW5lciwg
bGlzdGVuZXIpOwogICAgIEFTU0VSVF9BUkcocGFnZSwgcGFnZSk7CkBAIC0xMTEsMjAgKzExMywx
NyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVi
dWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqCiAKICAgICBMaXN0ZW5lclNldCogbGlzdGVuZXJz
ID0gaXQtPnZhbHVlLmdldCgpOwogICAgIGxpc3RlbmVycy0+cmVtb3ZlKGxpc3RlbmVyKTsKKwog
ICAgIGlmIChsaXN0ZW5lcnMtPmlzRW1wdHkoKSkgewogICAgICAgICBtX3BhZ2VMaXN0ZW5lcnNN
YXAucmVtb3ZlKGl0KTsKLSAgICAgICAgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKHBhZ2UpOworICAg
ICAgICBkaWRSZW1vdmVMYXN0TGlzdGVuZXIocGFnZSwgc2tpcFJlY29tcGlsZSk7CiAgICAgfQog
fQogCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMo
KQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAg
ICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5vdCBlbXB0eSBwb3N0cG9uZSByZWNvbXBpbGF0
aW9uLgotICAgIGlmIChKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+ZW50cnlTY29wZSkKLSAgICAg
ICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAgICBEZWJ1
Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwor
ICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhKU0RPTVdpbmRvdzo6Y29tbW9u
Vk0oKSk7CiB9CiAKIFNjcmlwdERlYnVnU2VydmVyOjpMaXN0ZW5lclNldCogUGFnZVNjcmlwdERl
YnVnU2VydmVyOjpnZXRMaXN0ZW5lcnNGb3JHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKQEAgLTE2MSwxNSArMTYwLDI1IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
ICAgIHNldEphdmFTY3JpcHRQYXVzZWQocGFnZS0+Z3JvdXAoKSwgZmFsc2UpOwogfQogCi12b2lk
IFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2Up
Cit2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0ZW5lcihQYWdlKiBw
YWdlKQoreworICAgIC8vIFNldCBkZWJ1Z2dlciBiZWZvcmUgcmVjb21waWxpbmcgdG8gZ2V0IHNv
dXJjZVBhcnNlZCBjYWxsYmFja3MuCisgICAgcGFnZS0+c2V0RGVidWdnZXIodGhpcyk7CisgICAg
cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKK30KKwordm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2
ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKiBwYWdlLCBib29sIHNraXBSZWNvbXBpbGUp
CiB7CiAgICAgQVNTRVJUKHBhZ2UpOwogCiAgICAgaWYgKG1fcGF1c2VkUGFnZSA9PSBwYWdlKQog
ICAgICAgICBtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgPSB0cnVlOwogCi0gICAgcmVj
b21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgcGFnZS0+c2V0RGVidWdnZXIoMCk7Cisg
ICAgLy8gQ2xlYXIgZGVidWdnZXIgYmVmb3JlIHJlY29tcGlsaW5nIGJlY2F1c2Ugd2UgZG8gbm90
IG5lZWQgc291cmNlUGFyc2VkIGNhbGxiYWNrcy4KKyAgICBwYWdlLT5zZXREZWJ1Z2dlcihudWxs
cHRyKTsKKworICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlQWxsSlNG
dW5jdGlvbnMoKTsKIH0KIAogdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9v
cFdoaWxlUGF1c2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggZWQ3ZjI0ZS4uNTY3ZWQ5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIHNoYXJl
ZCgpOwogCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiwgUGFnZSop
OwotICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIFBhZ2UqKTsK
KyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBQYWdlKiwgYm9v
bCBza2lwUmVjb21waWxlKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0
aW9ucygpIG92ZXJyaWRlOwogCkBAIC02NSw3ICs2NSw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKIAotICAgIHZvaWQgZGlkUmVtb3Zl
TGFzdExpc3RlbmVyKFBhZ2UqKTsKKyAgICB2b2lkIGRpZEFkZEZpcnN0TGlzdGVuZXIoUGFnZSop
OworICAgIHZvaWQgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqLCBib29sIHNraXBSZWNvbXBp
bGUpOwogCiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UGF1c2VkKGNvbnN0IFBhZ2VHcm91cCYsIGJv
b2wgcGF1c2VkKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRQYXVzZWQoUGFnZSosIGJvb2wgcGF1
c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVn
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVy
LmNwcAppbmRleCBkYWM1MmEyLi40MDNkZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiSmF2YVNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5j
bHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1Nj
cmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuaD4KICNp
bmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXIuaD4KQEAgLTU3LDcgKzU4LDYgQEAgU2NyaXB0
RGVidWdTZXJ2ZXI6OlNjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNJbldvcmtlclRocmVhZCkKICAg
ICA6IERlYnVnZ2VyKGlzSW5Xb3JrZXJUaHJlYWQpCiAgICAgLCBtX2RvbmVQcm9jZXNzaW5nRGVi
dWdnZXJFdmVudHModHJ1ZSkKICAgICAsIG1fY2FsbGluZ0xpc3RlbmVycyhmYWxzZSkKLSAgICAs
IG1fcmVjb21waWxlVGltZXIodGhpcywgJlNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9uc1RpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTMxMywxNiArMzEzLDYgQEAgdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6aGFuZGxlUGF1c2UoRGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBK
U0dsb2JhbE9iamVjdCogdm0KICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoJlNjcmlw
dERlYnVnU2VydmVyOjpkaXNwYXRjaERpZENvbnRpbnVlLCB2bUVudHJ5R2xvYmFsT2JqZWN0KTsK
IH0KIAotdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29u
KCkKLXsKLSAgICBtX3JlY29tcGlsZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNUaW1lckZpcmVkKFRpbWVy
PFNjcmlwdERlYnVnU2VydmVyPiYpCi17Ci0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsK
LX0KLQogY29uc3QgVmVjdG9yPFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24+JiBTY3JpcHREZWJ1Z1Nl
cnZlcjo6Z2V0QWN0aW9uc0ZvckJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50SUQgYnJlYWtwb2lu
dElEKQogewogICAgIEFTU0VSVChicmVha3BvaW50SUQgIT0gSlNDOjpub0JyZWFrcG9pbnRJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRl
eCBmYTBlZTVkLi45MzU0MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmgKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlNjcmlwdEJy
ZWFrcG9pbnQuaCIKICNpbmNsdWRlICJTY3JpcHREZWJ1Z0xpc3RlbmVyLmgiCi0jaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRPYmplY3QuaD4KICNpbmNsdWRlIDxk
ZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01OSw3ICs1
OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50
SUQpOwogICAgIHZvaWQgY2xlYXJCcmVha3BvaW50cygpOwogCi0gICAgdm9pZCByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9uc1Nvb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5j
dGlvbnMoKSA9IDA7CiAKICAgICBjb25zdCBWZWN0b3I8U2NyaXB0QnJlYWtwb2ludEFjdGlvbj4m
IGdldEFjdGlvbnNGb3JCcmVha3BvaW50KEpTQzo6QnJlYWtwb2ludElEKTsKQEAgLTEwOSwxMiAr
MTA3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlUGF1c2UoSlNDOjpEZWJ1
Z2dlcjo6UmVhc29uRm9yUGF1c2UsIEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cygp
IG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1RpbWVy
RmlyZWQoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+Jik7Ci0KICAgICB1bnNpZ25lZCBtX2hpdENv
dW50OwogICAgIGJvb2wgbV9jYWxsaW5nTGlzdGVuZXJzOwogICAgIEJyZWFrcG9pbnRJRFRvQWN0
aW9uc01hcCBtX2JyZWFrcG9pbnRJRFRvQWN0aW9uczsKLSAgICBUaW1lcjxTY3JpcHREZWJ1Z1Nl
cnZlcj4gbV9yZWNvbXBpbGVUaW1lcjsKIAogICAgIGZyaWVuZCBjbGFzcyBEZWJ1Z2dlckNhbGxG
cmFtZVNjb3BlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBiZWM5ZTU3Li42OTUxYmZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCkBAIC01NSwxMCArNTUsMjcgQEAgdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6
YWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiAgICAgaWYgKCFsaXN0
ZW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkK
LSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmF0dGFjaERlYnVnZ2VyKHRo
aXMpOworICAgIGJvb2wgd2FzRW1wdHkgPSBtX2xpc3RlbmVycy5pc0VtcHR5KCk7CiAgICAgbV9s
aXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTsKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwor
CisgICAgaWYgKHdhc0VtcHR5KSB7CisgICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUtPnNjcmlw
dCgpLT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoKTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxp
c3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBib29sIHNraXBSZWNvbXBpbGUp
Cit7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5l
cnMucmVtb3ZlKGxpc3RlbmVyKTsKKworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERlYnVnZ2VyKHRo
aXMpOworICAgICAgICBpZiAoIXNraXBSZWNvbXBpbGUpCisgICAgICAgICAgICByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucygpOworICAgIH0KIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQpAQCAtNjYsMjEgKzgzLDcgQEAgdm9pZCBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQogICAgIEpTQzo6
Vk0qIHZtID0gbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPnZtKCk7CiAKICAgICBKU0M6
OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLSAgICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5v
dCBlbXB0eSBwb3N0cG9uZSByZWNvbXBpbGF0aW9uLgotICAgIGlmICh2bS0+ZW50cnlTY29wZSkK
LSAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAg
ICBKU0M6OkRlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyh2bSk7Ci19Ci0KLXZvaWQg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVu
ZXIqIGxpc3RlbmVyKQotewotICAgIGlmICghbGlzdGVuZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7Ci0gICAgaWYgKG1fbGlzdGVuZXJzLmlz
RW1wdHkoKSkKLSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERl
YnVnZ2VyKHRoaXMpOworICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
KHZtKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hp
bGVQYXVzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggYmY2MTZhYS4uNzYyZDIxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC00
NSwyMCArNDUsMTcgQEAgcHVibGljOgogICAgIFdvcmtlclNjcmlwdERlYnVnU2VydmVyKFdvcmtl
ckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJik7CiAgICAgfldvcmtlclNjcmlwdERlYnVnU2Vy
dmVyKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOwot
ICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOworICAgIHZvaWQg
cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIGJvb2wgc2tpcFJlY29tcGlsZSk7
CiAKICAgICB2b2lkIGludGVycnVwdEFuZFJ1blRhc2soUGFzc093blB0cjxTY3JpcHREZWJ1Z1Nl
cnZlcjo6VGFzaz4pOwogCi0gICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92ZXJy
aWRlOwotCiBwcml2YXRlOgogICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVyc0Zv
ckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyByZXR1cm4gJm1f
bGlzdGVuZXJzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKSBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQotCi0gICAgdmlydHVhbCBib29sIGlzQ29udGVudFNj
cmlwdChKU0M6OkV4ZWNTdGF0ZSopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAgICB2
aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBvdmVycmlkZTsKIAogICAgIFdv
cmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNw
cAppbmRleCA2YzM0YmIyLi4yYTdhNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNTcs
NyArNTcsNyBAQCB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcAogICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShi
YWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5o
CmluZGV4IDRiODYyYWEuLjUyZDhlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsK
ICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGMwODQ5OTAuLjAxYTUyZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNTE1
LDcgKzUxNSw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckNTU0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3Bh
dGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4
IGRjYmE5MWEuLjEwYjRmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZm9yY2VQ
c2V1ZG9TdGF0ZShFbGVtZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRpc2NhcmRBZ2VudCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggYjMwNmZhYS4uOTUyNThlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250CiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckNhbnZhc0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERp
c3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oCmluZGV4IDNiYzdiMTEuLmE5YTM4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1Ymxp
YzoKICAgICB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGZyYW1l
TmF2aWdhdGVkKEZyYW1lKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmlu
ZGV4IGEyNDMyNWEuLjcwMWFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckZyb24KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ29uc29s
ZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQog
Ci12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA1
Zjk4YzM2Li42MjNiY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c2V0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlND
OjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElELCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBhNmViNTEwLi5lYzY0YzJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xOTcs
NyArMTk3LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xsZXIoKQog
CiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQogewot
ICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQpOwogICAgIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjb25uZWN0KCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQt
Pmluc3BlY3RvckRlc3Ryb3llZCgpOwogICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gbnVsbHB0cjsK
QEAgLTI2NiwxMiArMjY2LDEyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFuCiAjZW5kaWYKIH0K
IAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQordm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoKTsKKyAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFz
b24pOwogCiAgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgp
OwogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKQEAgLTMwOCw3ICsz
MDgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKCkKIHsKICAgICBpZiAoIW1f
aW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKQogICAgICAgICByZXR1cm47Ci0gICAgZGlzY29ubmVj
dEZyb250ZW5kKCk7CisgICAgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RS
ZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmNsb3Nl
SW5zcGVjdG9yRnJvbnRlbmQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggODllOTc4MC4uNDA1ZTY5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC05OSw3ICs5OSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbW90ZUZyb250ZW5kKCkgY29uc3Q7CiAKICAgICB2
b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCop
OwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJv
bnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKTsKICAgICB2b2lkIHNl
dFByb2Nlc3NJZChsb25nKTsKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNzJiZjg1
NS4uZjI0Y2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmQKICAg
ICAgICAgZm9jdXNOb2RlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAg
bV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgK
aW5kZXggYWIyOTk5MC4uMTM0NWJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFN0cmluZyB0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAg
ICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKICAgICB2b2lkIHJlc2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAKaW5kZXggN2Y5MjFhMy4uOTdiMjkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtMTEyLDcgKzEx
Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlz
cGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXgg
YTU4ZjQ4ZC4uYzMyMzc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGJvb2wgaXNET01FdmVudCwgY29uc3Qg
U3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmluZGV4
IDlmNTI5YWIuLjI1YzZmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRPTVN0
b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgKaW5kZXggYzYyYWE3MS4uNWFkMmI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApAQCAtNTgsNyArNTgsNyBA
QCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAg
IC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDMxYTYxZDguLjI4NjFlZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5j
cHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckRhdGFiYXNl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggNmZiNzEwOC4uMzIyOTYwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5o
CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDZlOTBi
MzQuLjA0OWJjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk1LDEyICs5NSwxMiBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiAgICAgbV9lbmFibGVkID0gdHJ1ZTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpCiB7CiAgICAgbV9qYXZhU2NyaXB0
QnJlYWtwb2ludHMuY2xlYXIoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBzdG9wTGlzdGVuaW5nU2NyaXB0RGVi
dWdTZXJ2ZXIoKTsKKyAgICBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoaXNCZWluZ0Rl
c3Ryb3llZCk7CiAgICAgY2xlYXJSZXNvbHZlZEJyZWFrcG9pbnRTdGF0ZSgpOwogCiAgICAgaWYg
KG1fbGlzdGVuZXIpCkBAIC0xMjQsNyArMTI0LDggQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IGZhbHNl
OworICAgIGRpc2FibGUoc2tpcFJlY29tcGlsZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyKiBiYWNrZW5kRGlzcGF0Y2hlcikKQEAgLTEzMywxMiArMTM0LDEzIEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRlYnVnZ2Vy
QmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CisgICAg
ZGlzYWJsZShza2lwUmVjb21waWxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgYWN0aXZlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXgg
Zjk5YWEzOC4uYWRiNzc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1BhdXNl
ZCgpOwogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSk7CkBAIC0xMjgsMTQgKzEyOCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlw
dE1hbmFnZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVn
U2VydmVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdT
ZXJ2ZXIoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1Nl
cnZlcihib29sIGlzQmVpbmdEZXN0cm95ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNv
bnNvbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAgICAg
SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcigp
IGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAgICAgdmlydHVhbCBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmlu
ZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZW5hYmxlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQ
YXVzZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBjYWxs
RnJhbWVzLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZENsZWFyR2xvYmFsT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcAppbmRleCA1NDgzMGJjLi43Nzc1MzNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG8KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQmFja2Vu
ZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmgKaW5kZXggOTgwNGZlNC4uYzk0ODIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKQEAgLTY3LDcgKzY3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwg
aW50IHVpZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9y
OjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHRha2VIZWFwU25h
cHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVk
REJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwCmluZGV4IGRiNDUxZmQuLmFmM2M1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTc0LDcgKzU3
NCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckluZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3Bh
dGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAppbmRleCBhZTYxOTg4Li5k
MDcxYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVu
ZC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKaW5kZXgg
YzRiODc4OS4uYzQ1YTA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvcklucHV0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEluc3BlY3RvcklucHV0
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZQogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnB1dEJhY2tlbmREaXNw
YXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3Bl
Y3RvcklucHV0QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5z
cGVjdG9ySW5wdXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRl
eCA4OGViOTMzLi5mMTUyYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5wdXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0
b3JJbnB1dEFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUg
ZnJvbnRlbmQgZm9yIHNpbXVsYXRpbmcgaW5wdXQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
S2V5RXZlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9k
aWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25z
dCBTdHJpbmcqIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNv
bnN0IGludCogd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBjb25zdCBpbnQqIG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBj
b25zdCBib29sKiBpc0tleXBhZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKaW5kZXggYzBmYzI2MC4uMDg2ZTNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3Bl
Y3RvckxheWVyVHJlZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXll
clRyZWVBZ2VudC5oCmluZGV4IDcyMWIzMTAuLjc1NjFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC01Myw3ICs1Myw3
IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGI3
NGMzNTMuLjE2NGQ5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3Rvck1lbW9y
eUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JNZW1vcnlCYWNrZW5kRGlz
cGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJ
bnNwZWN0b3JNZW1vcnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5o
CmluZGV4IGM1YzEwYWYuLjEyZjNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBnZXRET01Db3VudGVycyhFcnJvclN0cmluZyosIGludCogZG9jdW1lbnRzLCBpbnQqIG5vZGVz
LCBpbnQqIGpzRXZlbnRMaXN0ZW5lcnMpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGU0N2ZmZGQuLjBlZDBlMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW4KICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gSW5zcGVjdG9yUGFnZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFj
a2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaAppbmRleCA3NzQxNTNhLi44M2QxMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgog
CiAgICAgLy8gSW5zcGVjdG9yIENvbnRyb2xsZXIgQVBJCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENyb3NzLWFn
ZW50cyBBUEkKICAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXgg
MWYyNWEzZS4uNjRlYzY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVTY3JpcHQoKSBvdmVycmlkZQogICAgIHsK
LSAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1
bmN0aW9uc1Nvb24oKTsKKyAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5y
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFByb2ZpbGluZyhjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZQpAQCAtMjAyLDIzICsyMDIs
MjIgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JT
dHJpbmcqLCBib29sKiByZXN1bHQpCiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBpZiAoZW5hYmxlZCgpKQotICAgICAgICByZXR1cm47
CiAgICAgZW5hYmxlKGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpk
aXNhYmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBkaXNhYmxlKCk7CisgICAgZGlzYWJsZShmYWxz
ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRpc2FibGUoYm9vbCBza2lwUmVjb21waWxlKQogewogICAg
IGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7
CiAgICAgbV9wcm9maWxlSGVhZGVyc1JlcXVlc3RlZCA9IGZhbHNlOwotICAgIHJlY29tcGlsZVNj
cmlwdCgpOworICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlU2NyaXB0
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJl
Y29tcGlsZSkKQEAgLTMzMywxNCArMzMyLDE1IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvclByb2ZpbGVyQmFja2VuZERpc3BhdGNo
ZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCiAgICAgc3RvcCgp
OwotICAgIEVycm9yU3RyaW5nIGVycm9yOwotICAgIGRpc2FibGUoJmVycm9yKTsKKworICAgIGJv
b2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJ
bnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CisgICAgZGlzYWJsZShza2lwUmVjb21waWxlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydChFcnJvclN0cmluZyopCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRl
eCAyYTJiN2ZiLi5kMzc5MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzdGFydChFcnJvclN0cmluZyogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyogPSBudWxscHRyKSBvdmVycmlkZTsKIAotICAg
IHZvaWQgZGlzYWJsZSgpOworICAgIHZvaWQgZGlzYWJsZShib29sIHNraXBSZWNvbXBpbGUpOwog
ICAgIHZvaWQgZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgYm9vbCBlbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgU3RyaW5nIGdldEN1cnJlbnRVc2VySW5p
dGlhdGVkUHJvZmlsZU5hbWUoYm9vbCBpbmNyZW1lbnRQcm9maWxlTnVtYmVyID0gZmFsc2UpOwpA
QCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGludCB1aWQpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29u
c3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgdG9nZ2xlUmVjb3Jk
QnV0dG9uKGJvb2wgaXNQcm9maWxpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDMyNDRkN2UuLjc4M2QwMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm8KICAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggYzk1MGI3MS4uZDJjYTJhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVk
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggZTRhNGQ1Ny4uZjhhNmMzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JUaW1lbGluZUJhY2tlbmREaXNwYXRjaGVyOjpj
cmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggMmY0ZjdkZS4uNGM1ZWQyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEVycm9yU3RyaW5nKiwgY29u
c3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCwgY29uc3QgYm9vbCogaW5jbHVkZURvbUNvdW50ZXJz
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyopIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAKaW5kZXggMGZiZGJkZC4uYjgxMDhiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnQKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yV29y
a2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9zaG91bGRQYXVzZURl
ZGljYXRlZFdvcmtlck9uU3RhcnQgPSBmYWxzZTsKICAgICBkaXNhYmxlKG51bGxwdHIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCAz
YTk1MTQ0Li43NTNjOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yV29ya2VyQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3Rv
cldvcmtlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgYm9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCmluZGV4IDBjMDE4YmUuLjVhNzM1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtNjUsOSArNjUsOSBAQCB2b2lkIFBhZ2VEZWJ1
Z2dlckFnZW50OjplbmFibGUoKQogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGFnZURl
YnVnZ2VyQWdlbnQodGhpcyk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUo
KQordm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiB7Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSgpOworICAgIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoaXNCZWluZ0Rlc3Ryb3llZCk7CiAgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRQYWdlRGVidWdnZXJBZ2VudChudWxscHRyKTsKIH0KIApAQCAtNzYs
OSArNzYsOSBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdGFydExpc3RlbmluZ1NjcmlwdERl
YnVnU2VydmVyKCkKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLmFkZExpc3RlbmVyKHRoaXMsIG1f
cGFnZUFnZW50LT5wYWdlKCkpOwogfQogCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlz
dGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQordm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6c3RvcExp
c3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsKLSAgICBz
Y3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRoaXMsIG1fcGFnZUFnZW50LT5wYWdl
KCkpOworICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9wYWdl
QWdlbnQtPnBhZ2UoKSwgaXNCZWluZ0Rlc3Ryb3llZCk7CiB9CiAKIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggMGE1NzlhYy4uNGRkMTcz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAg
LTU0LDExICs1NCwxMSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVn
U2VydmVyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHRE
ZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGQzZjZmNTYuLjAzNDI2NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZEMKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5z
cGVjdG9yUnVudGltZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkKK3ZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKaW5kZXggZjBjYmE0NC4u
ZTYyYzMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50
KCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3Bw
CmluZGV4IDU1OGY5Y2EuLjhmMzM3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEyMiw5ICsxMjIsOSBAQCB2b2lkIFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OnN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQogICAgIHNj
cmlwdERlYnVnU2VydmVyKCkuYWRkTGlzdGVuZXIodGhpcyk7CiB9CiAKLXZvaWQgV29ya2VyRGVi
dWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkKK3ZvaWQgV29ya2Vy
RGVidWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWlu
Z0Rlc3Ryb3llZCkKIHsKLSAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRo
aXMpOworICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgaXNCZWlu
Z0Rlc3Ryb3llZCk7CiB9CiAKIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBXb3JrZXJEZWJ1Z2dl
ckFnZW50OjpzY3JpcHREZWJ1Z1NlcnZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuaAppbmRleCBlYWRkNzQyLi44YTAzMmIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFuZERpc3BhdGNoSW5zcGVj
dG9yQ29tbWFuZHMoV29ya2VyVGhyZWFkKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMaXN0
ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9w
TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdT
ZXJ2ZXIoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IGNkNjk4NTQuLmZkMDcyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTExNiw3ICsxMTYsNyBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbAogV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6fldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKQogewogICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+cmVzZXQoKTsKLSAgICBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICBk
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFy
Z2V0RGVzdHJveWVkKTsKIH0KIAogdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQoKQpAQCAtMTI3LDExICsxMjcsMTIgQEAgdm9pZCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSwgbV9iYWNrZW5kRGlzcGF0Y2hl
ci5nZXQoKSk7CiB9CiAKLXZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKCkKK3ZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGlmICghbV9m
cm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2FnZW50cy53aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpOworCisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250
ZW5kKCk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogICAgIG1fZnJvbnRlbmRD
aGFubmVsID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGZlNmZkYTcuLjdiMjQzZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgfldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0
RnJvbnRlbmQoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250
ZW5kKGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAg
IHZvaWQgcmVzdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDliNjQwZDcuLjZjNDAxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGcm9udGVuCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rv
clJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlz
KTsKIH0KIAotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKCkKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaAppbmRleCBlOTAyMmIyLi4wM2VhZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBQcm90
b2NvbCBjb21tYW5kcy4KICAgICB2aXJ0dWFsIHZvaWQgcnVuKEVycm9yU3RyaW5nKikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCmluZGV4IGMxZjI2NTIuLjA2
N2RmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRm9yd2FyZGluZy5oIgogI2luY2x1ZGUgIk1haW5G
cmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnRCYXNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKQEAgLTg0LDcgKzg1
LDcgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKIHZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3Qo
KQogewogICAgIEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIgPSBtX3Bh
Z2UuaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29u
bmVjdEZyb250ZW5kKCk7CisgICAgaW5zcGVjdG9yQ29udHJvbGxlci5kaXNjb25uZWN0RnJvbnRl
bmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKICAgICBp
bnNwZWN0b3JDb250cm9sbGVyLnNldEhhc1JlbW90ZUZyb250ZW5kKGZhbHNlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJlYjY5ZDkuLjczOTBjMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRl
ICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1
ZGUgPGJ5dGVjb2RlL0NvZGVCbG9jay5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JB
Z2VudEJhc2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtMTQ2NCw3ICsxNDY1LDggQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0
b3JGcm9udGVuZCgpCiAgICAgQVNTRVJUKHBhZ2UpOwogICAgIEFTU0VSVChtX2Zyb250ZW5kV2lu
ZG93KTsKIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoKTsKKyAgICAvLyBUcmVhdCB0aGlzIGFzIGlmIHRoZSBwYWdlIHdlIGFyZSBpbnNwZWN0aW5n
IGlzIGNsb3NpbmcuCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95
ZWQpOwogCiAgICAgbV9mcm9udGVuZENoYW5uZWwucmVsZWFzZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IGQ1MDRhZDIuLmVm
MzYwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAi
V29ya2VyRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDI4LDcgKzQy
OSw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OmNvbm5lY3RUb0luc3BlY3RvcihXb3Jr
ZXJHbG9iYWxTY29wZVByb3h5OjpQYWdlSW5zcGVjCiBzdGF0aWMgdm9pZCBkaXNjb25uZWN0RnJv
bVdvcmtlckdsb2JhbFNjb3BlSW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBib29sKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNv
bnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7Ci0gICAgc3RhdGljX2Nhc3Q8V29ya2VyR2xv
YmFsU2NvcGUqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworICAgIHN0YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlKj4oY29udGV4
dCktPndvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5k
ZXggZTA2Y2FjYi4uNzMyNDhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4
cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhw
b3J0cy5kZWYuaW4KQEAgLTIzNCw3ICsyMzQsNiBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9zZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNASW5zcGVj
dG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYSEhAWiwgP3NldFJlc291cmNlc0RhdGFTaXplTGlt
aXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFFQUFYSEhAWikK
ICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3BhdGhCeUFwcGVuZGluZ0NvbXBvbmVudEBXZWJD
b3JlQEBZQT9BVlN0cmluZ0BXVEZAQEFCVjIzQDBAWiwgP3BhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dEBXZWJDb3JlQEBZQT9BVlN0cmluZ0BXVEZAQEFFQlYyM0AwQFopCiAgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9zZXRQcm9maWxlckVuYWJsZWRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3Jl
QEBRQUVYX05AWiwgP3NldFByb2ZpbGVyRW5hYmxlZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNv
cmVAQFFFQUFYX05AWikKLSAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2Rpc2Nvbm5lY3RGcm9u
dGVuZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWiwgP2Rpc2Nvbm5lY3RGcm9u
dGVuZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFFQUFYWFopCiAjZW5kaWYKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lzQWN0aXZlSW5zZXJ0aW9uUG9pbnRAV2ViQ29yZUBAWUFf
TlBCVk5vZGVAMUBAWiwgP2lzQWN0aXZlSW5zZXJ0aW9uUG9pbnRAV2ViQ29yZUBAWUFfTlBFQlZO
b2RlQDFAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9pc1ByZWxvYWRlZEBDYWNoZWRS
ZXNvdXJjZUxvYWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BXVEZAQEBaLCA/aXNQcmVsb2Fk
ZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUVCQV9OQUVCVlN0cmluZ0BXVEZAQEBa
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCmluZGV4IDQwN2Y5NmYuLjI5NWY2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRF
Zmw6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3cpOgorICAgICAgICBJbmNsdWRlIEluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb24uCisKIDIwMTQtMDEtMTkgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMV0gUmVtb3ZlIGFuZCByZWZhY3RvciB0aGUg
QVBJcyB3aGljaCB1c2Ugc2luZ2xlIGFuZCBiYXNlIGtleXdvcmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4
IGNhMThmOTYuLmJjZjI4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dEJhc2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIxMyw3ICsyMTQsNyBAQCB2b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50RWZsOjpzZXRUb29sYmFySGVpZ2h0KHVuc2lnbmVkKQogdm9pZCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3Bl
Y3RvckNvbnRyb2xsZXIpCiB7CiAgICAgaWYgKG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpCi0g
ICAgICAgIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1faW5zcGVjdGVkVmlldyktPmluc3BlY3RvckNv
bnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICAgICAgRVdLUHJpdmF0ZTo6Y29y
ZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRl
c3Ryb3llZCk7CiAKICAgICBpZiAobV9pbnNwZWN0b3JDbGllbnQpCiAgICAgICAgIG1faW5zcGVj
dG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRlbmRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZjU1
ZThkYi4uN2ZhNTg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAx
LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlw
dERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToK
KyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIy
ICBUaGlhZ28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3Jn
PgogCiAgICAgICAgIFtFRkxdW0dUS10gR2V0IEVGTCBhbmQgR1RLIGNvbXBpbGluZyB3aXRoIEFD
Q0VTU0lCSUxJVFkgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4IGNkYWQ4ZjcuLmNkOTQ5MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYmlu
c3BlY3RvcnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAi
d2Via2l0d2Vidmlld3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdl
bnRCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xODksNyArMTkwLDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNv
bnRyb2wKICAgICB9CiAKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAg
ICAgY29yZShtX2luc3BlY3RlZFdlYlZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29u
bmVjdEZyb250ZW5kKCk7CisgICAgICAgIGNvcmUobV9pbnNwZWN0ZWRXZWJWaWV3KS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAKICAgICBpZiAobV9pbnNwZWN0
b3JDbGllbnQpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRlbmRQYWdl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzdlYWNmNS4uN2I2ZTQ1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBk
ZXN0cm95SW5zcGVjdG9yVmlldzpdKToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uLgorCiAyMDE0LTAxLTIyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgQnVpbGQgZml4IGZvciBpT1MgY2xpZW50cyBvZiBXZWJVSURlbGVnYXRlUHJp
dmF0ZS5oLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDMyYTcyNzAuLmFmODlkOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0K
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8
YWxnb3JpdGhtPgogI2ltcG9ydCA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KKyNpbXBvcnQgPGlu
c3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9y
Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KQEAgLTY5Myw3ICs2OTQsNyBAQCB2b2lk
IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWRVUkwsIGNvbnN0IFN0cmluZwogCiAgICAgaWYgKG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIp
IHsKICAgICAgICAgaWYgKFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBbX2luc3BlY3RlZFdlYlZpZXcu
Z2V0KCkgcGFnZV0pCi0gICAgICAgICAgICBpbnNwZWN0ZWRQYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgICAgICAgICBpbnNwZWN0ZWRQYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKICAgICB9CiAKICAgICBS
ZXRhaW5QdHI8V2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlcj4gcHJvdGVjdChzZWxmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCA5NmU0NTlhLi45ZjBhNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5j
dGlvbnMgdGltZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5z
cGVjdG9yVmlldyk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4K
KwogMjAxNC0wMS0yMSAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAog
ICAgICAgICBbV2luQ2Fpcm9dW0N1cmxdIERvd25sb2FkIHJlcXVlc3QgaGFzIGluY29ycmVjdCB1
c2VyIGFnZW50IHN0cmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IGYyMmI3MDkuLjhiOGU2ZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
T2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4K
IAorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDx3
Y2hhci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZS5oPgpAQCAtNDM4LDcgKzQzOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JWaWV3KGJvb2wgbm90aWZ5SW5zcGVjdG9y
Q29udHJvCiAgICAgY2xvc2VXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucygpOwogCiAgICAgaWYg
KG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpIHsKLSAgICAgICAgbV9pbnNwZWN0ZWRXZWJWaWV3
LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAg
ICAgICAgbV9pbnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5k
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJ
bnNwZWN0b3JEZXN0cm95ZWQpOwogICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+dXBkYXRlSGln
aGxpZ2h0KCk7CiAgICAgfQogICAgIDo6RGVzdHJveVdpbmRvdyhtX2Zyb250ZW5kSHduZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMDY2NzlmYy4uMDllYzUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVy
IGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OnJlbW90ZUZyb250ZW5k
RGlzY29ubmVjdGVkKToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
LgorCiAyMDE0LTAxLTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBEZWJ1ZyBtZWNoYW5pc20gdG8gb3ZlcnJpZGUgcHJvY2VzcyBRb1Mgb24g
TWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwCmluZGV4IDA1
OGYwZmYuLmIzZTZlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250
cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2Uu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC01Nyw3ICs1OCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6
OmJyaW5nVG9Gcm9udCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNsb3Nl
V2luZG93KCkKIHsKLSAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOwogICAgIG1fcGFnZS0+aW5zcGVjdG9y
KCktPmRpZENsb3NlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggNDMwNTIyYi4uY2NmNDU1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgor
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDxiaW5k
aW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRl
Lmg+CiAKQEAgLTMyNiw3ICszMjcsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6cmVtb3RlRnJvbnRl
bmRDb25uZWN0ZWQoKQogdm9pZCBXZWJJbnNwZWN0b3I6OnJlbW90ZUZyb250ZW5kRGlzY29ubmVj
dGVkKCkKIHsKICAgICBBU1NFUlQobV9yZW1vdGVGcm9udGVuZENvbm5lY3RlZCk7Ci0gICAgbV9w
YWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5k
KCk7CisgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29u
bmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVj
dG9yRGVzdHJveWVkKTsKICAgICBtX3JlbW90ZUZyb250ZW5kQ29ubmVjdGVkID0gZmFsc2U7CiB9
CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222037</attachid>
            <date>2014-01-23 16:01:08 -0800</date>
            <delta_ts>2014-01-23 16:06:23 -0800</delta_ts>
            <desc>[PATCH] For Bots 2</desc>
            <filename>for-bots-2.patch</filename>
            <type>text/plain</type>
            <size>134075</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzBmYjc0Li5lOGQyOTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTQtMDEt
MjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0
RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IGluIHRlc3RzLiBCcmVha3Bv
aW50cyBhcmUgYWxyZWFkeQorICAgICAgICBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGVzdHMuIEFs
c28gc2luY2UgdGhlIERlYnVnZ2VyQWdlbnQuZW5hYmxlKCkgY2FsbAorICAgICAgICBub3cgaW1t
ZWRpYXRlbHkgcmVjb21waWxlcyBzY3JpcHRzLCBzb3VyY2VQYXJzZWQgZXZlbnRzIGFyZSBub3cg
c2VudCB0bworICAgICAgICB0aGUgZnJvbnRlbmQgZWFybGllciBldmVuIGJlZm9yZSB0aGUgc2V0
QnJlYWtwb2ludHNBY3RpdmUgbWVzc2FnZSBoYXMKKyAgICAgICAgYmVlbiBwcm9jZXNzZWQsIHNv
IHRoZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IHdhcyBzaG93aW5nIHVwCisgICAgICAg
IGxhdGVyLCBzZWVtaW5nbHkgcmFuZG9tbHkgaW4gdGVzdHMsIGFuZCBpcyBubyBsb25nZXIgaGVs
cGZ1bC4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRp
dGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRo
LWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1p
bnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1h
Y3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
dGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Nh
bGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxl
LXByb2Jlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQ
YXVzZU9uRXhjZXB0aW9ucy1hbGwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVt
b3ZlZC5odG1sOgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVg6IFdlYktpdCBjb25jYXRlbmF0ZXMgbmFtZSBvZiBhbGwgdG9v
bGJhciBidXR0b25zIGluIHRoZSBhcHBsZS5jb20gdmlkZW8gcGxheWVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CmluZGV4IDY0NmUzOTAu
LmE3MzFiMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxl
IGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGlu
dWUgZXhlY3V0aW5nIGNvZGUuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9p
bnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMp
CiBDbG9zaW5nIHRoZSBpbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0
YWNoLmh0bWwKaW5kZXggOTUxMDIxMS4uYmFjOGY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2guaHRtbApAQCAtNTAsOSArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDU3ZDI5NjMuLmJkNDEwZjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwu
Y2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CmluZGV4IGRlNmM4NGMuLjNiOTQ3M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCkBAIC00NywxMCArNDcsNiBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAg
fSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKaW5kZXggYmFlODc3Mi4uNzg4NmQ3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4g
YWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1
Z2dlci4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKIENsb3NpbmcgdGhl
IGluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRt
bAppbmRleCAzNTIwYjQ5Li42MTdlZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29u
ZGl0aW9uLWRldGFjaC5odG1sCkBAIC01MCwxMCArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDk1NWFhMDUuLjVi
MWUyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0
aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1
c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGNv
bmRpdGlvbnMuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGlu
c2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBU
aGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiB0aGUgZXhjZXB0aW9uIGluc2lkZSB0aGUg
Y29uZGl0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24uaHRtbAppbmRleCA4NzhkNjU0Li5jMWZjMjE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
d2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApAQCAtNDYs
MTAgKzQ2LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0Zv
ckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1l
dmFsLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDAxYjg0ZDguLmU3MDEyYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBA
QAogV2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxk
IGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCiAKLUJyZWFrcG9p
bnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50QmFzaWMK
IFBBU1M6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIm90aGVyIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13
aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IGUyYmNlNTIuLjk2
YTMwMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9u
Lmh0bWwKQEAgLTU2LDEwICs1Niw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHth
Y3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBjYjVhZjVlLi5hMzM0ODQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRoZSBk
ZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1
dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCBicmVha3BvaW50LmpzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjoo
MikgYStiOigzKQogRXhlY3V0aW5nIGNvbmRpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1h
bmQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy5odG1sCmluZGV4IDZjMWNj
NTkuLmEyZTU4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwKQEAgLTYwLDEwICs2MCw2IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCAxMGUyYWZjLi4wYTVmNmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
PHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcg
dGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUuaHRtbAppbmRleCA2ZDkxZjkwLi5mNjU2OWRhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCkBAIC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIC8vIGNhbGwgZnJhbWUgZnVuY3Rpb25OYW1lcyBhcmUgd2hhdCB3ZSBleHBlY3QuCiAK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhwZWN0
ZWQudHh0CmluZGV4IGY0MTJlNTAuLjBiOTRjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxl
ZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKaW5kZXggODhiOTJmYi4uZjA2ZTEzNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtdGhpcy1ob3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFtZSB0aGlzIHZhbHVlcyBhcmUgd2hhdCB3ZSBl
eHBlY3QuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUi
LCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtw
b2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dAppbmRleCBjMWRiMDAzLi45MTRkMDA0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10
aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8
c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmluZyB0
ZXN0RnVuY3Rpb24KIFBBU1M6IHN0ZXAgMDogdHlwZSAib2JqZWN0IiBjbGFzc05hbWUgIk51bWJl
ciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sCmluZGV4IGFjNTY0
NDQuLjUwNzg5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRt
bApAQCAtMTIsOSArMTIsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBjYWxsIGZyYW1lIHRo
aXMgdmFsdWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQi
KTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1zdHJpY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0CmluZGV4IGE5NjgzZjQu
LjdjN2IyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6
Y29sdW1uIGluIDxzY3JpcHQ+CiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIDxzY3JpcHQ+
CiBSdW5uaW5nIHRlc3RGdW5jdGlvbgogUEFTUzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZhbHVl
ICIyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWwKaW5kZXggMjhiOGMwZi4u
YTVlZjhjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sCkBAIC0xMiw5
ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGNhbGwgZnJhbWUgdGhpcyB2YWx1ZXMg
YXJlIHdoYXQgd2UgZXhwZWN0LgogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0p
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUt
cHJvYmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3
MTM3MDUuLmQ4YjViYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIu
c2V0QnJlYWtwb2ludCB3aXRoIG11bHRpcGxlIHByb2JlIGFjdGlvbnMgYXQgdGhlIHNhbWUgYnJl
YWtwb2ludC4gVGVzdCBEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSBldmVudHMgZm9yIHRoZSBwcm9i
ZSBzYW1wbGVzLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBQ
QVNTOiBTaG91bGQgcmVjZWl2ZSB0d28gYnJlYWtwb2ludCBhY3Rpb24gaWRlbnRpZmllcnMgb24g
RGVidWdnZXIuc2V0QnJlYWtwb2ludCBjYWxsYmFjay4KIFJ1bm5pbmcgYnJlYWtwb2ludEFjdGlv
bnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmluZGV4IGNmMGUzZjUuLjE2ODA2YWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKQEAgLTgsOSAr
OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIu
Li8uLi8uLi8uLi9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb2JlLWhlbHBlci5qcyIp
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIHNhbXBs
ZXMgPSBbXTsKICAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0gMjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9y
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
bmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY3OTAzNTkuLjYyYzJkZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQt
aW5zcGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYg
QEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjogUEFTUzogRXhwZWN0ZWQgZXhjZXB0
aW9uCiBDaGVja2luZyB0aGF0IHRoZSBpbnNwZWN0b3IgY29kZSBjYW4gYmUgZGVidWdnZWQgdXNp
bmcgYSBzZWNvbmQgaW5zcGVjdG9yIHdpbmRvdy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwKIFBBU1M6IFBhdXNlZCEKIFBBU1M6IFJl
c3VtZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCmluZGV4IGI2YmI3M2QuLmY0NWMwMjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCkBAIC05LDE1ICs5LDEyIEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJ1bnMgaW4gdGhlIHNlY29uZCBpbnNw
ZWN0b3Igd2luZG93LiBXZSBjYW4gdXNlIHRoaXMgb25lIHRvIGRlYnVnIHRoZSBmaXJzdCBpbnNw
ZWN0b3IuCiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5h
YmxlIiwge30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNl
cHRpb25zIC0gYWxsIik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7CiAKLSAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGFuIGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAi
c2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdQQVNTOiBFeHBlY3RlZCBl
eGNlcHRpb24nKSB9LCAwKTsifSk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIFRy
aWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4KKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignUEFTUzogRXhwZWN0ZWQg
ZXhjZXB0aW9uJykgfSwgMCk7In0pOwogICAgICAgICB9KTsKIAogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDFmYWI0
M2QuLmQ5MDYwNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50CiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIFNldCBCcmVha3BvaW50LCBUcmlnZ2VyaW5n
IGl0CiBpbnNpZGUgYnJlYWtwb2ludEJhc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbAppbmRl
eCBlNDIwMGE5Li4yNTU2MTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKQEAgLTYsOSAr
Niw2IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0g
ICAgfSk7CiAKICAgICB2YXIgYnJlYWtwb2ludFRyaWdnZXJlZCA9IDA7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFj
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODIxYzYyZC4uODI0
MjFhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTYsNyArNiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlvbgog
Q09OU09MRSBNRVNTQUdFOiBsb2ctYWN0aW9uLWFmdGVyCiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50
IG9wdGlvbnMuYWN0aW9ucwogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50
LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5v
dCB0cmlnZ2VyCiBpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMSkgYjoodW5kZWZpbmVkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCmluZGV4IDExYjY5YWEuLmI0NmFmM2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwKQEAgLTEwLDkgKzEwLDYgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xl
LmVuYWJsZSIsIHt9KTsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7CiAgICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxl
cyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS1leHBlY3RlZC50eHQKaW5kZXggOGM2MjIwZi4uNmM2YTRkNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRp
bnVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51ZQogCi1CcmVh
a3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRB
dXRvbWF0aWNhbGx5Q29udGludWUgbXVsdGlwbGUgdGltZXMgd2l0aCBhdXRvbWF0aWNhbGx5IGNv
bnRpbnVlCiBpbnNpZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
YXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCA2NGI4MzQ1Li5kNDRhYzNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNiw5
ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBhbGxvd2VkVG9IaXRCcmVha3BvaW50ID0gZmFsc2U7CiAgICAg
dmFyIGJyZWFrcG9pbnRJZGVudGlmaWVyID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0CmluZGV4IGE3YjJkYWQuLjQ4NTQ1NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbHVtbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUg
QEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAot
QnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9u
CiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKaW5kZXgg
NzNlYTk0Yi4uODdmYWNkNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBA
IC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGJ5IHJ1bm5pbmcgc29tZSBl
eHByZXNzaW9ucyBhdCB0aGF0IGNhbGwgZnJhbWUuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVk
Iik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbmRpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDlkNzc3
ZDAuLmE1MmU2YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0
aW9ucy5jb25kaXRpb24KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5q
cwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBsZSB0aW1lcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bmRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKaW5kZXggMTkwMzU4Ny4uZTc2NGU0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29uZGl0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKQEAgLTYsOSArNiw2IEBACiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAgICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDllYTQ5OTcuLjk0
M2RiYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1
IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MCBpbiA8c2NyaXB0IHNyYz0iLi4u
Ij4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUEFTUzogUmVj
ZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludCBhdCBz
cGVjaWZpZWQgbG9jYXRpb24gYWxyZWFkeSBleGlzdHMuCiBSdW5uaW5nIGJyZWFrcG9pbnRCYXNp
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRp
b24tZXhwZWN0ZWQudHh0CmluZGV4IDZkZWJjN2IuLmE5OTdmNDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAndGhpcy53aWxsLmNhdXNlJykKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25k
aXRpb24gb3Igb3B0aW9ucy5hY3Rpb24gd2l0aCBleGNlcHRpb24KIAotQnJlYWtwb2ludHMgRW5h
YmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlv
biB0byB0cmlnZ2VyIGNvbmRpdGlvbiBleGNlcHRpb24uCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwKaW5kZXggNWM5M2M0MS4uYjE1YmRhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCkBAIC05
LDkgKzksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkNvbnNvbGUuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIAogICAgIHZhciBsb2dzU2VlbiA9IDA7CiAgICAgY29uc3QgZXhwZWN0ZWRMb2dzID0g
MjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sCmluZGV4IDkwZjAzNWEuLjdlNzY4YmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQuaHRtbApAQCAtNiw5ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3Rp
dmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwt
ZXhwZWN0ZWQudHh0CmluZGV4IGM1MGRkNzIuLjkwYzExNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNl
VVJMLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50QnlVcmwgaW4gU2NyaXB0IG5hbWVkIHZpYSBz
b3VyY2VVUkwKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgc291cmNlVVJMLXRlc3QuanMK
IFJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVy
bC1zb3VyY2VVUkwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKaW5kZXggMTAxYzJkOC4uMWE3MTZi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBA
IC05LDkgKzksNiBAQCBldmFsKCJmdW5jdGlvbiBzb3VyY2VVUkxGdW5jdGlvbigpIHtcbiAgICB2
YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBjCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKaW5kZXggYTk5YTBkNy4uNjlmN2FiZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDYg
QEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIGFsbAogCi1CcmVha3BvaW50cyBFbmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9u
RXhjZXB0aW9ucyAtIGFsbAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBz
dGF0ZW1lbnRzCiBQYXVzZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0
bWwKaW5kZXggMzE3MWRmYi4uYmVmMzM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0
aW9ucy1hbGwuaHRtbApAQCAtMTAyLDE1ICsxMDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIAog
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2
ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgZnVu
Y3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKLSAgICAgICAgICAgIGV2YWx1
YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3RQ
YXVzZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHJpZ2dlck5leHQoKTsKLSAgICAgICAgICAg
IH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFs
bCIpOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7CisgICAgICAgICAgICB0cmlnZ2VyTmV4dCgpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNl
cHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CmluZGV4IDU3MThkY2QuLmNkZDQ0M2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1ub25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKQEAg
LTEyLDcgKzEyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIG5vbmUKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBub25lCiBQQVNTOiBObyBwYXVzZXMKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLmh0bWwKaW5kZXggYmE4NzBmMy4uNmM2MDcw
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCkBAIC02LDMy
ICs2LDI5IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyAtIG5vbmUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IDEr
MTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgbm9F
eGNlcHRpb24oKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChl
KSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9
IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNo
TmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0
VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7
In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQo
ZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyB9LCAw
KTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3Rl
ZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHt9LmEuYi5jLmQ7IH0sIDAp
OyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkJh
c2ljKCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJl
c3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1N0cmluZygpOyB9LCAwKTsifSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1BhcmFtKHt4OjF9
KTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhy
b3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
fSwgMTApOwotICAgICAgICAgICAgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9u
KHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihy
ZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgMSsxOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IG5vRXhjZXB0aW9uKCk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0Y2ggKGUpIHsg
Y29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShlKSk7IH0gfSwg
MCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChl
eGNlcHRpb25CYXNpYywgMSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7In0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RG
dW5jdGlvbiwgMyk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgY2F0Y2hOZXN0ZWQodGhyb3dTdHJpbmcsIDEwKTsgfSwgMCk7In0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJy
b3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsge30uYS5iLmMuZDsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25CYXNpYygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lv
bjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0s
IDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dTdHJpbmco
KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1Bh
cmFtKHt4OjF9KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0sIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0sIDEwKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDZhMTZiNjcuLjg4OWJmMjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4
cGVjdGVkLnR4dApAQCAtMTksNyArMTksNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNh
dGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gc3RyaW5nIgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjE4
LCJjb2x1bW4iOjEyLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQogRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMgdW5jYXVnaHQKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24g
bm9uLWV4Y2VwdGlvbiBzdGF0ZW1lbnRzIG9yIGNhdWdodCBleGNlcHRpb24gc3RhdGVtZW50cwog
UGF1c2VkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRt
bAppbmRleCBiYmI3YzMzLi4yNWU0MDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbApAQCAtNzksMTUgKzc5LDEyIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAidW5j
YXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodCIpOwot
ICAgICAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0cmlnZ2VyTmV4
dFVuY2F1Z2h0RXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogInVu
Y2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIHVuY2F1Z2h0Iik7CisgICAgICAg
IGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVj
dFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24o
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4
cGVjdGVkLnR4dAppbmRleCBlY2VjNTBiLi43MDlhYjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2Rl
LXJlbW92ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogVGVzdGluZyB0aGF0IERPTS5j
aGlsZE5vZGVSZW1vdmVkIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQgZXZlbiB3aGVuIHRoZSBlbGVt
ZW50IGlzIG1vdmVkIHdoaWxlIHBhdXNlZCBpbiB0aGUgZGVidWdnZXIgb24gYSBET01EZWJ1Z2dl
ciAibm9kZS1yZW1vdmVkIiBicmVha3BvaW50LgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCA8c2NyaXB0PgogU3RvcHBlZCBvbiBET00gYnJlYWtwb2ludAogUEFTUzogb25DaGlsZE5vZGVS
ZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRt
bAppbmRleCAyNTA0ZTQ1Li5iNjYxNmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwKQEAg
LTExOCwxMyArMTE4LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRET01CcmVha3BvaW50Iiwge25vZGVJZDogdGFy
Z2V0RWxlbWVudElkLCB0eXBlOiAibm9kZS1yZW1vdmVkIn0pOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiBmaW5hbENv
bnRhaW5lcklkfSk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7ICAgICAgICAKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhw
cmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5h
YmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBkZjMwMTRmLi4yYjViODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNl
Lmg6CisgICAgICAgIFdoZW4gZGlzY29ubmVjdGluZyBhZ2VudHMsIHByb3ZpZGUgYSBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIGZvcgorICAgICAgICB0aGUgZGlzY29ubmVjdGlvbi4gSXQgY291
bGQgYmUgdGhhdCBhbiBpbnNwZWN0b3IgZnJvbnRlbmQgaXMganVzdAorICAgICAgICBkaXNjb25u
ZWN0aW5nIG9yIHRoYXQgdGhlIGluc3BlY3RlZCBvYmplY3QgaXMgZ29pbmcgYXdheSBlbnRpcmVs
eQorICAgICAgICBhbmQgd2UgY2FuIGF2b2lkIGRvaW5nIHNvbWUgd29yay4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6On5KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUpOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3RJbnRlcm5hbCk6CisgICAgICAgIFBhc3Mg
ZGlmZmVyZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdHMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQWdlbnQuaDoKKyAgICAgICAgUGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIGFyb3Vu
ZCB3aGVyZSBuZWVkZWQuCisKIDIwMTQtMDEtMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTIHdoaXRlc3BhY2UgZGVmaW5pdGlvbiBmb3Ig
Y2hhbmdlcyBpbiBVbmljb2RlIDYuMwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmgKaW5kZXggMjBhZDcxZi4uZjZiNmM1NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oCkBAIC0zNCwxMiArMzQsMTcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bDsKIAorZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHsKKyAgICBJbnNwZWN0
ZWRUYXJnZXREZXN0cm95ZWQsCisgICAgSW5zcGVjdG9yRGVzdHJveWVkCit9OworCiBjbGFzcyBJ
bnNwZWN0b3JBZ2VudEJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50
QmFzZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciop
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nh
cmRBZ2VudCgpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAppbmRleCAyMDNj
OGY2Li5lMGQ5ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCB2
b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZQogICAgICAgICBtX2FnZW50c1tpXS0+ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKGZyb250ZW5kQ2hhbm5lbCwgYmFja2VuZERpc3BhdGNoZXIpOwogfQog
Ci12b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQWdlbnRSZWdpc3RyeTo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX2FnZW50cy5zaXplKCk7IGkrKykKLSAgICAgICAgbV9hZ2VudHNb
aV0tPndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgICAgIG1fYWdlbnRzW2ld
LT53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQogCiB2b2lkIEluc3Bl
Y3RvckFnZW50UmVnaXN0cnk6OmRpc2NhcmRBZ2VudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAppbmRleCAy
ZTg5MDM5Li4xN2Q2NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEluc3BlY3RvckFnZW50QmFzZTsKIGNsYXNzIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwor
ZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOwogCiBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5IHsKIHB1YmxpYzoKQEAgLTQyLDcgKzQzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2Vu
dEJhc2U+KTsKIAogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOwogICAg
IHZvaWQgZGlzY2FyZEFnZW50cygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDc0NjJhYWQuLmQ3YjQ2ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTY4LDEyICs2OCwxMiBAQCB2b2lkIEpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbAogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChmcm9udGVuZENoYW5uZWwsIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwog
fQogCi12b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKCkKK3ZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25u
ZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYg
KCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9h
Z2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICBtX2FnZW50cy53aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9pbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1faW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCmlu
ZGV4IGZmNDFiNTkuLmM0ZmJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICB2b2lk
IGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbik7CiAg
ICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCA2OWJhNWViLi5mY2VlNDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGZy
b250CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rvckluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIElu
c3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3Bl
Y3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA5NDNlZjE2Li5j
N2RjOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkluc3BlY3RvckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVi
dWdnYWJsZS5jcHAKaW5kZXggYzkzM2FhNi4uMmI4OTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAKICNpbmNs
dWRlICJBUElTaGltcy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFnZW50QmFzZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yLmgiCkBAIC00NSw3ICs0Niw3IEBAIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZTo6SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlKEpTR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6On5KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUoKQogewogICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAg
ICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgZGlzY29ubmVjdEludGVybmFsKEluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZCk7CiB9CiAKIFN0cmluZyBK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6Om5hbWUoKSBjb25zdApAQCAtNjUsOSArNjYsMTQgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiBmcm9udGVuZENoYW5uZWwKIAogdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6
OmRpc2Nvbm5lY3QoKQogeworICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOworfQorCit2b2lkIEpTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZTo6ZGlzY29ubmVjdEludGVybmFsKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24g
cmVhc29uKQorewogICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oJm1fZ2xvYmFsT2JqZWN0LnZt
KCkpOwogCi0gICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsK
KyAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcm9udGVuZChyZWFzb24pOwog
ICAgIG1faW5zcGVjdG9yQ29udHJvbGxlciA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgK
aW5kZXggYWFmZjE5OS4uY2YzZWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTMyLDYgKzMyLDEw
IEBACiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZS5oIgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogCituYW1lc3BhY2UgSW5zcGVjdG9yIHsKK2VudW0gY2xhc3MgSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbjsKK30KKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwpAQCAtNTIsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IG92ZXJyaWRlOwogCiBwcml2YXRlOgorICAgIHZvaWQgZGlzY29ubmVjdEludGVybmFsKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOworCiAgICAgSlNHbG9iYWxP
YmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcj4gbV9pbnNwZWN0b3JDb250cm9sbGVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBkZWFiY2UxLi5mYzIwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQxIEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
IHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6
OlNjcmlwdERlYnVnU2VydmVyKToKKyAgICAgICAgUmVtb3ZlIG1fcmVjb21waWxlVGltZXIgYW5k
IHRoZSByZWNvbXBpbGUgc29vbiBmdW5jdGlvbi4KKyAgICAgICAgV2UgY2FuIGp1c3QgcmVjb21w
aWxlIGltbWVkaWF0ZWx5IGluIGFsbCBleGlzdGluZyBjYXNlcy4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1
Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERl
YnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZEFkZEZpcnN0TGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVuZXIpOgorICAg
ICAgICBBZGQgYSAiZGlkQWRkRmlyc3RMaXN0ZW5lciIgdG8gbWF0Y2ggImRpZFJlbW92ZUxhc3RM
aXN0ZW5lciIuCisgICAgICAgIE9ubHkgcmVjb21waWxlIGZ1bmN0aW9ucyB3aGVuIHdlIGF0dGFj
aCB0aGUgZGVidWdnZXIgYW5kIHdoZW4KKyAgICAgICAgd2UgZGV0YWNoIHRoZSBsYXN0IGxpc3Rl
bmVyLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21w
aWxlQWxsSlNGdW5jdGlvbnMpOgorICAgICAgICBTYW1lIHRoaW5nLiBBbHNvIHJlYXJyYW5nZSB0
aGUgZnVuY3Rpb25zIHRvIHJlYWQgYmV0dGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICBVc2UgdGhlIGRpcmVjdCByZWNvbXBpbGUg
ZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVtb3ZlZCAic29vbiIgdmVyc2lvbi4KKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBVcGRhdGUgZGlzY29ubmVjdEZyb250ZW5kIHN5
bWJvbC4KKworICAgICAgICAqIHBhZ2UvUGFnZURlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y2xvc2VEdW1teUluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc2Nvbm5lY3RGcm9tV29ya2VyR2xvYmFsU2NvcGVJbnNw
ZWN0b3JUYXNrKToKKyAgICAgICAgSW5jbHVkZSBhbiBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
IHdoZW4gY2FsbGluZyBkaXNjb25uZWN0RnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICBJZiB0aGUgZGlzY29ubmVj
dCByZWFzb24gaXMgdGhlIHBhZ2Ugd2lsbCBiZSBkZXN0cm95ZWQsIGRvbid0IHJlY29tcGlsZSB3
aGVuIGRpc2Nvbm5lY3RpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgSWYgdGhlIGRpc2Nvbm5lY3QgcmVhc29uIGlzIHRoZSBwYWdl
IHdpbGwgYmUgZGVzdHJveWVkLCBkb24ndCByZWNvbXBpbGUgd2hlbiBkaXNjb25uZWN0aW5nLgor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9zZSk6CisgICAgICAgIFBhc3MgZGlmZmVy
ZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdCByZWFzb25zLgorCisgICAg
ICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0
RnJvbnRlbmQpOgorICAgICAgICBQYXNzIGRpZmZlcmVudCByZWFzb25zIGZvciB0aGUgZGlmZmVy
ZW50IGRpc2Nvbm5lY3QgcmVhc29ucy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52
YXNBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
YXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
cklucHV0QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXll
clRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1v
cnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJEZWJ1Z2dlckFnZW50Ojpz
dG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50Lmg6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiBwYXJhbS4K
KwogMjAxNC0wMS0yMiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFYOiBEbyBub3QgcmV0dXJuIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgYW4gb2JqZWN0
IGp1c3QgYmVjYXVzZSBpdCBoYXMgdGFiaW5kZXg9MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4
ODRmZDJmLi5kMzI5ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjc2Myw3ICsyNzYzLDcg
QEAgX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjVzZWxlY3RDb2xvckluQ29sb3JDaG9v
c2VyRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQzMWRvRGlzcGF0
Y2hNZXNzYWdlT25Gcm9udGVuZFBhZ2VFUE5TXzRQYWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlMTdJbnNwZWN0b3JDb3VudGVyczEyY291bnRlclZhbHVlRU5TMF8xMUNvdW50ZXJUeXBl
RQogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTVjb25uZWN0RnJvbnRlbmRFUE45
SW5zcGVjdG9yMjRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWxFCi1fX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIxOGRpc2Nvbm5lY3RGcm9udGVuZEV2CitfX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIxOGRpc2Nvbm5lY3RGcm9udGVuZEVOOUluc3BlY3RvcjI1SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbkUKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4c2V0
UHJvZmlsZXJFbmFibGVkRWIKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI1ZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZEVsUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOUlu
c3BlY3RvckNvbnRyb2xsZXIyNnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50RU5TdDNfXzExMHVu
aXF1ZV9wdHJJTlNfMjNJbnNwZWN0b3JGcm9udGVuZENsaWVudEVOUzFfMTRkZWZhdWx0X2RlbGV0
ZUlTM19FRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlw
dERlYnVnU2VydmVyLmNwcAppbmRleCAxY2VjN2IzLi44NDA2NzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTk0
LDEzICs5NCwxNSBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIoU2Ny
aXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBhZwogICAgIE93blB0cjxMaXN0ZW5l
clNldD4mIGxpc3RlbmVycyA9IG1fcGFnZUxpc3RlbmVyc01hcC5hZGQocGFnZSwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwogICAgIGlmICghbGlzdGVuZXJzKQogICAgICAgICBsaXN0ZW5lcnMg
PSBhZG9wdFB0cihuZXcgTGlzdGVuZXJTZXQpOworCisgICAgYm9vbCB3YXNFbXB0eSA9IGxpc3Rl
bmVycy0+aXNFbXB0eSgpOwogICAgIGxpc3RlbmVycy0+YWRkKGxpc3RlbmVyKTsKIAotICAgIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOwotICAgIHBhZ2UtPnNldERlYnVnZ2VyKHRoaXMp
OworICAgIGlmICh3YXNFbXB0eSkKKyAgICAgICAgZGlkQWRkRmlyc3RMaXN0ZW5lcihwYWdlKTsK
IH0KIAotdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERl
YnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdlKiBwYWdlKQordm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdl
KiBwYWdlLCBib29sIHNraXBSZWNvbXBpbGUpCiB7CiAgICAgQVNTRVJUX0FSRyhsaXN0ZW5lciwg
bGlzdGVuZXIpOwogICAgIEFTU0VSVF9BUkcocGFnZSwgcGFnZSk7CkBAIC0xMTEsMjAgKzExMywx
NyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVi
dWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqCiAKICAgICBMaXN0ZW5lclNldCogbGlzdGVuZXJz
ID0gaXQtPnZhbHVlLmdldCgpOwogICAgIGxpc3RlbmVycy0+cmVtb3ZlKGxpc3RlbmVyKTsKKwog
ICAgIGlmIChsaXN0ZW5lcnMtPmlzRW1wdHkoKSkgewogICAgICAgICBtX3BhZ2VMaXN0ZW5lcnNN
YXAucmVtb3ZlKGl0KTsKLSAgICAgICAgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKHBhZ2UpOworICAg
ICAgICBkaWRSZW1vdmVMYXN0TGlzdGVuZXIocGFnZSwgc2tpcFJlY29tcGlsZSk7CiAgICAgfQog
fQogCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMo
KQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAg
ICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5vdCBlbXB0eSBwb3N0cG9uZSByZWNvbXBpbGF0
aW9uLgotICAgIGlmIChKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+ZW50cnlTY29wZSkKLSAgICAg
ICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAgICBEZWJ1
Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwor
ICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhKU0RPTVdpbmRvdzo6Y29tbW9u
Vk0oKSk7CiB9CiAKIFNjcmlwdERlYnVnU2VydmVyOjpMaXN0ZW5lclNldCogUGFnZVNjcmlwdERl
YnVnU2VydmVyOjpnZXRMaXN0ZW5lcnNGb3JHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKQEAgLTE2MSwxNSArMTYwLDI1IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
ICAgIHNldEphdmFTY3JpcHRQYXVzZWQocGFnZS0+Z3JvdXAoKSwgZmFsc2UpOwogfQogCi12b2lk
IFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2Up
Cit2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0ZW5lcihQYWdlKiBw
YWdlKQoreworICAgIC8vIFNldCBkZWJ1Z2dlciBiZWZvcmUgcmVjb21waWxpbmcgdG8gZ2V0IHNv
dXJjZVBhcnNlZCBjYWxsYmFja3MuCisgICAgcGFnZS0+c2V0RGVidWdnZXIodGhpcyk7CisgICAg
cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKK30KKwordm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2
ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKiBwYWdlLCBib29sIHNraXBSZWNvbXBpbGUp
CiB7CiAgICAgQVNTRVJUKHBhZ2UpOwogCiAgICAgaWYgKG1fcGF1c2VkUGFnZSA9PSBwYWdlKQog
ICAgICAgICBtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgPSB0cnVlOwogCi0gICAgcmVj
b21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgcGFnZS0+c2V0RGVidWdnZXIoMCk7Cisg
ICAgLy8gQ2xlYXIgZGVidWdnZXIgYmVmb3JlIHJlY29tcGlsaW5nIGJlY2F1c2Ugd2UgZG8gbm90
IG5lZWQgc291cmNlUGFyc2VkIGNhbGxiYWNrcy4KKyAgICBwYWdlLT5zZXREZWJ1Z2dlcihudWxs
cHRyKTsKKworICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlQWxsSlNG
dW5jdGlvbnMoKTsKIH0KIAogdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9v
cFdoaWxlUGF1c2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggZWQ3ZjI0ZS4uNTY3ZWQ5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIHNoYXJl
ZCgpOwogCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiwgUGFnZSop
OwotICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIFBhZ2UqKTsK
KyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBQYWdlKiwgYm9v
bCBza2lwUmVjb21waWxlKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0
aW9ucygpIG92ZXJyaWRlOwogCkBAIC02NSw3ICs2NSw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKIAotICAgIHZvaWQgZGlkUmVtb3Zl
TGFzdExpc3RlbmVyKFBhZ2UqKTsKKyAgICB2b2lkIGRpZEFkZEZpcnN0TGlzdGVuZXIoUGFnZSop
OworICAgIHZvaWQgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqLCBib29sIHNraXBSZWNvbXBp
bGUpOwogCiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UGF1c2VkKGNvbnN0IFBhZ2VHcm91cCYsIGJv
b2wgcGF1c2VkKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRQYXVzZWQoUGFnZSosIGJvb2wgcGF1
c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVn
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVy
LmNwcAppbmRleCBkYWM1MmEyLi40MDNkZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiSmF2YVNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5j
bHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1Nj
cmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuaD4KICNp
bmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXIuaD4KQEAgLTU3LDcgKzU4LDYgQEAgU2NyaXB0
RGVidWdTZXJ2ZXI6OlNjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNJbldvcmtlclRocmVhZCkKICAg
ICA6IERlYnVnZ2VyKGlzSW5Xb3JrZXJUaHJlYWQpCiAgICAgLCBtX2RvbmVQcm9jZXNzaW5nRGVi
dWdnZXJFdmVudHModHJ1ZSkKICAgICAsIG1fY2FsbGluZ0xpc3RlbmVycyhmYWxzZSkKLSAgICAs
IG1fcmVjb21waWxlVGltZXIodGhpcywgJlNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9uc1RpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTMxMywxNiArMzEzLDYgQEAgdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6aGFuZGxlUGF1c2UoRGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBK
U0dsb2JhbE9iamVjdCogdm0KICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoJlNjcmlw
dERlYnVnU2VydmVyOjpkaXNwYXRjaERpZENvbnRpbnVlLCB2bUVudHJ5R2xvYmFsT2JqZWN0KTsK
IH0KIAotdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29u
KCkKLXsKLSAgICBtX3JlY29tcGlsZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNUaW1lckZpcmVkKFRpbWVy
PFNjcmlwdERlYnVnU2VydmVyPiYpCi17Ci0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsK
LX0KLQogY29uc3QgVmVjdG9yPFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24+JiBTY3JpcHREZWJ1Z1Nl
cnZlcjo6Z2V0QWN0aW9uc0ZvckJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50SUQgYnJlYWtwb2lu
dElEKQogewogICAgIEFTU0VSVChicmVha3BvaW50SUQgIT0gSlNDOjpub0JyZWFrcG9pbnRJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRl
eCBmYTBlZTVkLi45MzU0MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmgKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlNjcmlwdEJy
ZWFrcG9pbnQuaCIKICNpbmNsdWRlICJTY3JpcHREZWJ1Z0xpc3RlbmVyLmgiCi0jaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRPYmplY3QuaD4KICNpbmNsdWRlIDxk
ZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01OSw3ICs1
OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50
SUQpOwogICAgIHZvaWQgY2xlYXJCcmVha3BvaW50cygpOwogCi0gICAgdm9pZCByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9uc1Nvb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5j
dGlvbnMoKSA9IDA7CiAKICAgICBjb25zdCBWZWN0b3I8U2NyaXB0QnJlYWtwb2ludEFjdGlvbj4m
IGdldEFjdGlvbnNGb3JCcmVha3BvaW50KEpTQzo6QnJlYWtwb2ludElEKTsKQEAgLTEwOSwxMiAr
MTA3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlUGF1c2UoSlNDOjpEZWJ1
Z2dlcjo6UmVhc29uRm9yUGF1c2UsIEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cygp
IG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1RpbWVy
RmlyZWQoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+Jik7Ci0KICAgICB1bnNpZ25lZCBtX2hpdENv
dW50OwogICAgIGJvb2wgbV9jYWxsaW5nTGlzdGVuZXJzOwogICAgIEJyZWFrcG9pbnRJRFRvQWN0
aW9uc01hcCBtX2JyZWFrcG9pbnRJRFRvQWN0aW9uczsKLSAgICBUaW1lcjxTY3JpcHREZWJ1Z1Nl
cnZlcj4gbV9yZWNvbXBpbGVUaW1lcjsKIAogICAgIGZyaWVuZCBjbGFzcyBEZWJ1Z2dlckNhbGxG
cmFtZVNjb3BlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBiZWM5ZTU3Li42OTUxYmZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCkBAIC01NSwxMCArNTUsMjcgQEAgdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6
YWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiAgICAgaWYgKCFsaXN0
ZW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkK
LSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmF0dGFjaERlYnVnZ2VyKHRo
aXMpOworICAgIGJvb2wgd2FzRW1wdHkgPSBtX2xpc3RlbmVycy5pc0VtcHR5KCk7CiAgICAgbV9s
aXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTsKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwor
CisgICAgaWYgKHdhc0VtcHR5KSB7CisgICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUtPnNjcmlw
dCgpLT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoKTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxp
c3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBib29sIHNraXBSZWNvbXBpbGUp
Cit7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5l
cnMucmVtb3ZlKGxpc3RlbmVyKTsKKworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERlYnVnZ2VyKHRo
aXMpOworICAgICAgICBpZiAoIXNraXBSZWNvbXBpbGUpCisgICAgICAgICAgICByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucygpOworICAgIH0KIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQpAQCAtNjYsMjEgKzgzLDcgQEAgdm9pZCBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQogICAgIEpTQzo6
Vk0qIHZtID0gbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPnZtKCk7CiAKICAgICBKU0M6
OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLSAgICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5v
dCBlbXB0eSBwb3N0cG9uZSByZWNvbXBpbGF0aW9uLgotICAgIGlmICh2bS0+ZW50cnlTY29wZSkK
LSAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAg
ICBKU0M6OkRlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyh2bSk7Ci19Ci0KLXZvaWQg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVu
ZXIqIGxpc3RlbmVyKQotewotICAgIGlmICghbGlzdGVuZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7Ci0gICAgaWYgKG1fbGlzdGVuZXJzLmlz
RW1wdHkoKSkKLSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERl
YnVnZ2VyKHRoaXMpOworICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
KHZtKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hp
bGVQYXVzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggYmY2MTZhYS4uNzYyZDIxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC00
NSwyMCArNDUsMTcgQEAgcHVibGljOgogICAgIFdvcmtlclNjcmlwdERlYnVnU2VydmVyKFdvcmtl
ckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJik7CiAgICAgfldvcmtlclNjcmlwdERlYnVnU2Vy
dmVyKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOwot
ICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOworICAgIHZvaWQg
cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIGJvb2wgc2tpcFJlY29tcGlsZSk7
CiAKICAgICB2b2lkIGludGVycnVwdEFuZFJ1blRhc2soUGFzc093blB0cjxTY3JpcHREZWJ1Z1Nl
cnZlcjo6VGFzaz4pOwogCi0gICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92ZXJy
aWRlOwotCiBwcml2YXRlOgogICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVyc0Zv
ckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyByZXR1cm4gJm1f
bGlzdGVuZXJzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKSBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQotCi0gICAgdmlydHVhbCBib29sIGlzQ29udGVudFNj
cmlwdChKU0M6OkV4ZWNTdGF0ZSopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAgICB2
aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBvdmVycmlkZTsKIAogICAgIFdv
cmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNw
cAppbmRleCA2YzM0YmIyLi4yYTdhNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNTcs
NyArNTcsNyBAQCB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcAogICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShi
YWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5o
CmluZGV4IDRiODYyYWEuLjUyZDhlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsK
ICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGMwODQ5OTAuLjAxYTUyZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNTE1
LDcgKzUxNSw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckNTU0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3Bh
dGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4
IGRjYmE5MWEuLjEwYjRmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZm9yY2VQ
c2V1ZG9TdGF0ZShFbGVtZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRpc2NhcmRBZ2VudCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggYjMwNmZhYS4uOTUyNThlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250CiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckNhbnZhc0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERp
c3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oCmluZGV4IDNiYzdiMTEuLmE5YTM4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1Ymxp
YzoKICAgICB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGZyYW1l
TmF2aWdhdGVkKEZyYW1lKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmlu
ZGV4IGEyNDMyNWEuLjcwMWFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckZyb24KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ29uc29s
ZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQog
Ci12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA1
Zjk4YzM2Li42MjNiY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c2V0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlND
OjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElELCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBhNmViNTEwLi5lYzY0YzJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xOTcs
NyArMTk3LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xsZXIoKQog
CiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQogewot
ICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQpOwogICAgIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjb25uZWN0KCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQt
Pmluc3BlY3RvckRlc3Ryb3llZCgpOwogICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gbnVsbHB0cjsK
QEAgLTI2NiwxMiArMjY2LDEyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFuCiAjZW5kaWYKIH0K
IAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQordm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoKTsKKyAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFz
b24pOwogCiAgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgp
OwogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKQEAgLTMwOCw3ICsz
MDgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKCkKIHsKICAgICBpZiAoIW1f
aW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKQogICAgICAgICByZXR1cm47Ci0gICAgZGlzY29ubmVj
dEZyb250ZW5kKCk7CisgICAgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RS
ZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmNsb3Nl
SW5zcGVjdG9yRnJvbnRlbmQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggODllOTc4MC4uNDA1ZTY5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC05OSw3ICs5OSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbW90ZUZyb250ZW5kKCkgY29uc3Q7CiAKICAgICB2
b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCop
OwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJv
bnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKTsKICAgICB2b2lkIHNl
dFByb2Nlc3NJZChsb25nKTsKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNzJiZjg1
NS4uZjI0Y2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmQKICAg
ICAgICAgZm9jdXNOb2RlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAg
bV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgK
aW5kZXggYWIyOTk5MC4uMTM0NWJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFN0cmluZyB0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAg
ICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKICAgICB2b2lkIHJlc2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAKaW5kZXggN2Y5MjFhMy4uOTdiMjkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtMTEyLDcgKzEx
Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlz
cGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXgg
YTU4ZjQ4ZC4uYzMyMzc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGJvb2wgaXNET01FdmVudCwgY29uc3Qg
U3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmluZGV4
IDlmNTI5YWIuLjI1YzZmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRPTVN0
b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgKaW5kZXggYzYyYWE3MS4uNWFkMmI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApAQCAtNTgsNyArNTgsNyBA
QCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAg
IC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDMxYTYxZDguLjI4NjFlZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5j
cHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckRhdGFiYXNl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggNmZiNzEwOC4uMzIyOTYwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5o
CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDZlOTBi
MzQuLjA0OWJjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk1LDEyICs5NSwxMiBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiAgICAgbV9lbmFibGVkID0gdHJ1ZTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpCiB7CiAgICAgbV9qYXZhU2NyaXB0
QnJlYWtwb2ludHMuY2xlYXIoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBzdG9wTGlzdGVuaW5nU2NyaXB0RGVi
dWdTZXJ2ZXIoKTsKKyAgICBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoaXNCZWluZ0Rl
c3Ryb3llZCk7CiAgICAgY2xlYXJSZXNvbHZlZEJyZWFrcG9pbnRTdGF0ZSgpOwogCiAgICAgaWYg
KG1fbGlzdGVuZXIpCkBAIC0xMjQsNyArMTI0LDggQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IGZhbHNl
OworICAgIGRpc2FibGUoc2tpcFJlY29tcGlsZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyKiBiYWNrZW5kRGlzcGF0Y2hlcikKQEAgLTEzMywxMiArMTM0LDEzIEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRlYnVnZ2Vy
QmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CisgICAg
ZGlzYWJsZShza2lwUmVjb21waWxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgYWN0aXZlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXgg
Zjk5YWEzOC4uYWRiNzc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1BhdXNl
ZCgpOwogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSk7CkBAIC0xMjgsMTQgKzEyOCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlw
dE1hbmFnZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVn
U2VydmVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdT
ZXJ2ZXIoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1Nl
cnZlcihib29sIGlzQmVpbmdEZXN0cm95ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNv
bnNvbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAgICAg
SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcigp
IGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAgICAgdmlydHVhbCBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmlu
ZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZW5hYmxlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQ
YXVzZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBjYWxs
RnJhbWVzLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZENsZWFyR2xvYmFsT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcAppbmRleCA1NDgzMGJjLi43Nzc1MzNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG8KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQmFja2Vu
ZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmgKaW5kZXggOTgwNGZlNC4uYzk0ODIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKQEAgLTY3LDcgKzY3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwg
aW50IHVpZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9y
OjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHRha2VIZWFwU25h
cHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVk
REJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwCmluZGV4IGRiNDUxZmQuLmFmM2M1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTc0LDcgKzU3
NCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckluZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3Bh
dGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAppbmRleCBhZTYxOTg4Li5k
MDcxYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVu
ZC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKaW5kZXgg
YzRiODc4OS4uYzQ1YTA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvcklucHV0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEluc3BlY3RvcklucHV0
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZQogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnB1dEJhY2tlbmREaXNw
YXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3Bl
Y3RvcklucHV0QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5z
cGVjdG9ySW5wdXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRl
eCA4OGViOTMzLi5mMTUyYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5wdXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0
b3JJbnB1dEFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUg
ZnJvbnRlbmQgZm9yIHNpbXVsYXRpbmcgaW5wdXQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
S2V5RXZlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9k
aWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25z
dCBTdHJpbmcqIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNv
bnN0IGludCogd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBjb25zdCBpbnQqIG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBj
b25zdCBib29sKiBpc0tleXBhZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKaW5kZXggYzBmYzI2MC4uMDg2ZTNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3Bl
Y3RvckxheWVyVHJlZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXll
clRyZWVBZ2VudC5oCmluZGV4IDcyMWIzMTAuLjc1NjFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC01Myw3ICs1Myw3
IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGI3
NGMzNTMuLjE2NGQ5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3Rvck1lbW9y
eUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JNZW1vcnlCYWNrZW5kRGlz
cGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJ
bnNwZWN0b3JNZW1vcnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5o
CmluZGV4IGM1YzEwYWYuLjEyZjNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBnZXRET01Db3VudGVycyhFcnJvclN0cmluZyosIGludCogZG9jdW1lbnRzLCBpbnQqIG5vZGVz
LCBpbnQqIGpzRXZlbnRMaXN0ZW5lcnMpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGU0N2ZmZGQuLjBlZDBlMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW4KICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gSW5zcGVjdG9yUGFnZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFj
a2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaAppbmRleCA3NzQxNTNhLi44M2QxMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgog
CiAgICAgLy8gSW5zcGVjdG9yIENvbnRyb2xsZXIgQVBJCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENyb3NzLWFn
ZW50cyBBUEkKICAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXgg
MWYyNWEzZS4uNjRlYzY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVTY3JpcHQoKSBvdmVycmlkZQogICAgIHsK
LSAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1
bmN0aW9uc1Nvb24oKTsKKyAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5y
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFByb2ZpbGluZyhjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZQpAQCAtMjAyLDIzICsyMDIs
MjIgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JT
dHJpbmcqLCBib29sKiByZXN1bHQpCiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBpZiAoZW5hYmxlZCgpKQotICAgICAgICByZXR1cm47
CiAgICAgZW5hYmxlKGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpk
aXNhYmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBkaXNhYmxlKCk7CisgICAgZGlzYWJsZShmYWxz
ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRpc2FibGUoYm9vbCBza2lwUmVjb21waWxlKQogewogICAg
IGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7
CiAgICAgbV9wcm9maWxlSGVhZGVyc1JlcXVlc3RlZCA9IGZhbHNlOwotICAgIHJlY29tcGlsZVNj
cmlwdCgpOworICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlU2NyaXB0
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJl
Y29tcGlsZSkKQEAgLTMzMywxNCArMzMyLDE1IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvclByb2ZpbGVyQmFja2VuZERpc3BhdGNo
ZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCiAgICAgc3RvcCgp
OwotICAgIEVycm9yU3RyaW5nIGVycm9yOwotICAgIGRpc2FibGUoJmVycm9yKTsKKworICAgIGJv
b2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJ
bnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CisgICAgZGlzYWJsZShza2lwUmVjb21waWxlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydChFcnJvclN0cmluZyopCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRl
eCAyYTJiN2ZiLi5kMzc5MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzdGFydChFcnJvclN0cmluZyogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyogPSBudWxscHRyKSBvdmVycmlkZTsKIAotICAg
IHZvaWQgZGlzYWJsZSgpOworICAgIHZvaWQgZGlzYWJsZShib29sIHNraXBSZWNvbXBpbGUpOwog
ICAgIHZvaWQgZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgYm9vbCBlbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgU3RyaW5nIGdldEN1cnJlbnRVc2VySW5p
dGlhdGVkUHJvZmlsZU5hbWUoYm9vbCBpbmNyZW1lbnRQcm9maWxlTnVtYmVyID0gZmFsc2UpOwpA
QCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGludCB1aWQpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29u
c3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgdG9nZ2xlUmVjb3Jk
QnV0dG9uKGJvb2wgaXNQcm9maWxpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDMyNDRkN2UuLjc4M2QwMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm8KICAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggYzk1MGI3MS4uZDJjYTJhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVk
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggZTRhNGQ1Ny4uZjhhNmMzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JUaW1lbGluZUJhY2tlbmREaXNwYXRjaGVyOjpj
cmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggMmY0ZjdkZS4uNGM1ZWQyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEVycm9yU3RyaW5nKiwgY29u
c3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCwgY29uc3QgYm9vbCogaW5jbHVkZURvbUNvdW50ZXJz
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyopIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAKaW5kZXggMGZiZGJkZC4uYjgxMDhiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnQKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yV29y
a2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9zaG91bGRQYXVzZURl
ZGljYXRlZFdvcmtlck9uU3RhcnQgPSBmYWxzZTsKICAgICBkaXNhYmxlKG51bGxwdHIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCAz
YTk1MTQ0Li43NTNjOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yV29ya2VyQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3Rv
cldvcmtlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgYm9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCmluZGV4IDBjMDE4YmUuLjVhNzM1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtNjUsOSArNjUsOSBAQCB2b2lkIFBhZ2VEZWJ1
Z2dlckFnZW50OjplbmFibGUoKQogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGFnZURl
YnVnZ2VyQWdlbnQodGhpcyk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUo
KQordm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiB7Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSgpOworICAgIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoaXNCZWluZ0Rlc3Ryb3llZCk7CiAgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRQYWdlRGVidWdnZXJBZ2VudChudWxscHRyKTsKIH0KIApAQCAtNzYs
OSArNzYsOSBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdGFydExpc3RlbmluZ1NjcmlwdERl
YnVnU2VydmVyKCkKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLmFkZExpc3RlbmVyKHRoaXMsIG1f
cGFnZUFnZW50LT5wYWdlKCkpOwogfQogCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlz
dGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQordm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6c3RvcExp
c3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsKLSAgICBz
Y3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRoaXMsIG1fcGFnZUFnZW50LT5wYWdl
KCkpOworICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9wYWdl
QWdlbnQtPnBhZ2UoKSwgaXNCZWluZ0Rlc3Ryb3llZCk7CiB9CiAKIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggMGE1NzlhYy4uNGRkMTcz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAg
LTU0LDExICs1NCwxMSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVn
U2VydmVyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHRE
ZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGQzZjZmNTYuLjAzNDI2NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZEMKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5z
cGVjdG9yUnVudGltZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkKK3ZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKaW5kZXggZjBjYmE0NC4u
ZTYyYzMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50
KCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3Bw
CmluZGV4IDU1OGY5Y2EuLjhmMzM3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEyMiw5ICsxMjIsOSBAQCB2b2lkIFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OnN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQogICAgIHNj
cmlwdERlYnVnU2VydmVyKCkuYWRkTGlzdGVuZXIodGhpcyk7CiB9CiAKLXZvaWQgV29ya2VyRGVi
dWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkKK3ZvaWQgV29ya2Vy
RGVidWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWlu
Z0Rlc3Ryb3llZCkKIHsKLSAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRo
aXMpOworICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgaXNCZWlu
Z0Rlc3Ryb3llZCk7CiB9CiAKIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBXb3JrZXJEZWJ1Z2dl
ckFnZW50OjpzY3JpcHREZWJ1Z1NlcnZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuaAppbmRleCBlYWRkNzQyLi44YTAzMmIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFuZERpc3BhdGNoSW5zcGVj
dG9yQ29tbWFuZHMoV29ya2VyVGhyZWFkKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMaXN0
ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9w
TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdT
ZXJ2ZXIoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IGNkNjk4NTQuLmZkMDcyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTExNiw3ICsxMTYsNyBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbAogV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6fldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKQogewogICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+cmVzZXQoKTsKLSAgICBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICBk
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFy
Z2V0RGVzdHJveWVkKTsKIH0KIAogdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQoKQpAQCAtMTI3LDExICsxMjcsMTIgQEAgdm9pZCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSwgbV9iYWNrZW5kRGlzcGF0Y2hl
ci5nZXQoKSk7CiB9CiAKLXZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKCkKK3ZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGlmICghbV9m
cm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2FnZW50cy53aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpOworCisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250
ZW5kKCk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogICAgIG1fZnJvbnRlbmRD
aGFubmVsID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGZlNmZkYTcuLjdiMjQzZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgfldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0
RnJvbnRlbmQoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250
ZW5kKGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAg
IHZvaWQgcmVzdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDliNjQwZDcuLjZjNDAxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGcm9udGVuCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rv
clJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlz
KTsKIH0KIAotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKCkKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaAppbmRleCBlOTAyMmIyLi4wM2VhZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBQcm90
b2NvbCBjb21tYW5kcy4KICAgICB2aXJ0dWFsIHZvaWQgcnVuKEVycm9yU3RyaW5nKikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCmluZGV4IGMxZjI2NTIuLjA2
N2RmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRm9yd2FyZGluZy5oIgogI2luY2x1ZGUgIk1haW5G
cmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnRCYXNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKQEAgLTg0LDcgKzg1
LDcgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKIHZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3Qo
KQogewogICAgIEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIgPSBtX3Bh
Z2UuaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29u
bmVjdEZyb250ZW5kKCk7CisgICAgaW5zcGVjdG9yQ29udHJvbGxlci5kaXNjb25uZWN0RnJvbnRl
bmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKICAgICBp
bnNwZWN0b3JDb250cm9sbGVyLnNldEhhc1JlbW90ZUZyb250ZW5kKGZhbHNlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWNkMTMzNi4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAw
OCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDExIFBldGVyIFZhcmdhIChwdmFy
Z2FAd2Via2l0Lm9yZyksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgotCi0jaW5jbHVkZSA8d3Rm
L0J1bXBQb2ludGVyQWxsb2NhdG9yLmg+Ci0jaW5jbHVkZSA8eWFyci9ZYXJyLmg+Ci0jaW5jbHVk
ZSAiTG9nZ2luZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlZ3VsYXJFeHBy
ZXNzaW9uOjpQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVndWxhckV4cHJlc3Npb246OlBy
aXZhdGU+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcml2YXRlPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0
eSwgTXVsdGlsaW5lTW9kZSBtdWx0aWxpbmVNb2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcml2YXRlKHBhdHRlcm4sIGNhc2VTZW5zaXRpdml0eSwgbXVsdGlsaW5lTW9k
ZSkpOwotICAgIH0KLQotICAgIGludCBsYXN0TWF0Y2hMZW5ndGg7Ci0KLSAgICB1bnNpZ25lZCBt
X251bVN1YnBhdHRlcm5zOwotICAgIE93blB0cjxKU0M6OllhcnI6OkJ5dGVjb2RlUGF0dGVybj4g
bV9yZWdFeHBCeXRlQ29kZTsKLQotcHJpdmF0ZToKLSAgICBQcml2YXRlKGNvbnN0IFN0cmluZyYg
cGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIE11bHRpbGluZU1v
ZGUgbXVsdGlsaW5lTW9kZSkKLSAgICAgICAgOiBsYXN0TWF0Y2hMZW5ndGgoLTEpCi0gICAgICAg
ICwgbV9yZWdFeHBCeXRlQ29kZShjb21waWxlKHBhdHRlcm4sIGNhc2VTZW5zaXRpdml0eSwgbXVs
dGlsaW5lTW9kZSkpCi0gICAgICAgICwgbV9jb25zdHJ1Y3Rpb25FcnJvcigwKQotICAgIHsKLSAg
ICB9Ci0KLSAgICBQYXNzT3duUHRyPEpTQzo6WWFycjo6Qnl0ZWNvZGVQYXR0ZXJuPiBjb21waWxl
KGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vu
c2l0aXZpdHksIE11bHRpbGluZU1vZGUgbXVsdGlsaW5lTW9kZSkKLSAgICB7Ci0gICAgICAgIEpT
Qzo6WWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCAoY2FzZVNlbnNpdGl2
aXR5ID09IFRleHRDYXNlSW5zZW5zaXRpdmUpLCAobXVsdGlsaW5lTW9kZSA9PSBNdWx0aWxpbmVF
bmFibGVkKSwgJm1fY29uc3RydWN0aW9uRXJyb3IpOwotICAgICAgICBpZiAobV9jb25zdHJ1Y3Rp
b25FcnJvcikgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJSZWd1bGFyRXhwcmVzc2lvbjogWUFS
UiBjb21waWxlIGZhaWxlZCB3aXRoICclcyciLCBtX2NvbnN0cnVjdGlvbkVycm9yKTsKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9udW1TdWJwYXR0
ZXJucyA9IHBhdHRlcm4ubV9udW1TdWJwYXR0ZXJuczsKLQotICAgICAgICByZXR1cm4gSlNDOjpZ
YXJyOjpieXRlQ29tcGlsZShwYXR0ZXJuLCAmbV9yZWdleEFsbG9jYXRvcik7Ci0gICAgfQotCi0g
ICAgQnVtcFBvaW50ZXJBbGxvY2F0b3IgbV9yZWdleEFsbG9jYXRvcjsKLSAgICBjb25zdCBjaGFy
KiBtX2NvbnN0cnVjdGlvbkVycm9yOwotfTsKLQotUmVndWxhckV4cHJlc3Npb246OlJlZ3VsYXJF
eHByZXNzaW9uKGNvbnN0IFN0cmluZyYgcGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNl
U2Vuc2l0aXZpdHksIE11bHRpbGluZU1vZGUgbXVsdGlsaW5lTW9kZSkKLSAgICA6IGQoUHJpdmF0
ZTo6Y3JlYXRlKHBhdHRlcm4sIGNhc2VTZW5zaXRpdml0eSwgbXVsdGlsaW5lTW9kZSkpCi17Ci19
Ci0KLVJlZ3VsYXJFeHByZXNzaW9uOjpSZWd1bGFyRXhwcmVzc2lvbihjb25zdCBSZWd1bGFyRXhw
cmVzc2lvbiYgcmUpCi0gICAgOiBkKHJlLmQpCi17Ci19Ci0KLVJlZ3VsYXJFeHByZXNzaW9uOjp+
UmVndWxhckV4cHJlc3Npb24oKQotewotfQotCi1SZWd1bGFyRXhwcmVzc2lvbiYgUmVndWxhckV4
cHJlc3Npb246Om9wZXJhdG9yPShjb25zdCBSZWd1bGFyRXhwcmVzc2lvbiYgcmUpCi17Ci0gICAg
ZCA9IHJlLmQ7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1pbnQgUmVndWxhckV4cHJlc3Npb246
Om1hdGNoKGNvbnN0IFN0cmluZyYgc3RyLCBpbnQgc3RhcnRGcm9tLCBpbnQqIG1hdGNoTGVuZ3Ro
KSBjb25zdAotewotICAgIGlmICghZC0+bV9yZWdFeHBCeXRlQ29kZSkKLSAgICAgICAgcmV0dXJu
IC0xOwotCi0gICAgaWYgKHN0ci5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAg
aW50IG9mZnNldFZlY3RvclNpemUgPSAoZC0+bV9udW1TdWJwYXR0ZXJucyArIDEpICogMjsKLSAg
ICB1bnNpZ25lZCogb2Zmc2V0VmVjdG9yOwotICAgIFZlY3Rvcjx1bnNpZ25lZCwgMzI+IG5vblJl
dHVybmVkT3ZlY3RvcjsKLQotICAgIG5vblJldHVybmVkT3ZlY3Rvci5yZXNpemUob2Zmc2V0VmVj
dG9yU2l6ZSk7Ci0gICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsK
LQotICAgIEFTU0VSVChvZmZzZXRWZWN0b3IpOwotICAgIGZvciAodW5zaWduZWQgaiA9IDAsIGkg
PSAwOyBpIDwgZC0+bV9udW1TdWJwYXR0ZXJucyArIDE7IGogKz0gMiwgaSsrKQotICAgICAgICBv
ZmZzZXRWZWN0b3Jbal0gPSBKU0M6OllhcnI6Om9mZnNldE5vTWF0Y2g7Ci0KLSAgICB1bnNpZ25l
ZCByZXN1bHQ7Ci0gICAgaWYgKHN0ci5sZW5ndGgoKSA8PSBJTlRfTUFYKQotICAgICAgICByZXN1
bHQgPSBKU0M6OllhcnI6OmludGVycHJldChkLT5tX3JlZ0V4cEJ5dGVDb2RlLmdldCgpLCBzdHIs
IHN0YXJ0RnJvbSwgb2Zmc2V0VmVjdG9yKTsKLSAgICBlbHNlIHsKLSAgICAgICAgLy8gVGhpcyBj
b2RlIGNhbid0IGhhbmRsZSB1bnNpZ25lZCBvZmZzZXRzLiBMaW1pdCBvdXIgcHJvY2Vzc2luZyB0
byBzdHJpbmdzIHdpdGggb2Zmc2V0cyB0aGF0IAotICAgICAgICAvLyBjYW4gYmUgcmVwcmVzZW50
ZWQgYXMgaW50cy4KLSAgICAgICAgcmVzdWx0ID0gSlNDOjpZYXJyOjpvZmZzZXROb01hdGNoOwot
ICAgIH0KLQotICAgIGlmIChyZXN1bHQgPT0gSlNDOjpZYXJyOjpvZmZzZXROb01hdGNoKSB7Ci0g
ICAgICAgIGQtPmxhc3RNYXRjaExlbmd0aCA9IC0xOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAg
fQotCi0gICAgLy8gMSBtZWFucyAxIG1hdGNoOyAwIG1lYW5zIG1vcmUgdGhhbiBvbmUgbWF0Y2gu
IEZpcnN0IG1hdGNoIGlzIHJlY29yZGVkIGluIG9mZnNldFZlY3Rvci4KLSAgICBkLT5sYXN0TWF0
Y2hMZW5ndGggPSBvZmZzZXRWZWN0b3JbMV0gLSBvZmZzZXRWZWN0b3JbMF07Ci0gICAgaWYgKG1h
dGNoTGVuZ3RoKQotICAgICAgICAqbWF0Y2hMZW5ndGggPSBkLT5sYXN0TWF0Y2hMZW5ndGg7Ci0g
ICAgcmV0dXJuIG9mZnNldFZlY3RvclswXTsKLX0KLQotaW50IFJlZ3VsYXJFeHByZXNzaW9uOjpz
ZWFyY2hSZXYoY29uc3QgU3RyaW5nJiBzdHIpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFRoaXMg
Y291bGQgYmUgZmFzdGVyIGlmIGl0IGFjdHVhbGx5IHNlYXJjaGVkIGJhY2t3YXJkcy4KLSAgICAv
LyBJbnN0ZWFkLCBpdCBqdXN0IHNlYXJjaGVzIGZvcndhcmRzLCBtdWx0aXBsZSB0aW1lcyB1bnRp
bCBpdCBmaW5kcyB0aGUgbGFzdCBtYXRjaC4KLQotICAgIGludCBzdGFydCA9IDA7Ci0gICAgaW50
IHBvczsKLSAgICBpbnQgbGFzdFBvcyA9IC0xOwotICAgIGludCBsYXN0TWF0Y2hMZW5ndGggPSAt
MTsKLSAgICBkbyB7Ci0gICAgICAgIGludCBtYXRjaExlbmd0aDsKLSAgICAgICAgcG9zID0gbWF0
Y2goc3RyLCBzdGFydCwgJm1hdGNoTGVuZ3RoKTsKLSAgICAgICAgaWYgKHBvcyA+PSAwKSB7Ci0g
ICAgICAgICAgICBpZiAocG9zICsgbWF0Y2hMZW5ndGggPiBsYXN0UG9zICsgbGFzdE1hdGNoTGVu
Z3RoKSB7Ci0gICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBsYXN0IG1hdGNoIGlmIHRoaXMgb25l
IGlzIGxhdGVyIGFuZCBub3QgYSBzdWJzZXQgb2YgdGhlIGxhc3QgbWF0Y2gKLSAgICAgICAgICAg
ICAgICBsYXN0UG9zID0gcG9zOwotICAgICAgICAgICAgICAgIGxhc3RNYXRjaExlbmd0aCA9IG1h
dGNoTGVuZ3RoOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RhcnQgPSBwb3MgKyAxOwot
ICAgICAgICB9Ci0gICAgfSB3aGlsZSAocG9zICE9IC0xKTsKLSAgICBkLT5sYXN0TWF0Y2hMZW5n
dGggPSBsYXN0TWF0Y2hMZW5ndGg7Ci0gICAgcmV0dXJuIGxhc3RQb3M7Ci19Ci0KLWludCBSZWd1
bGFyRXhwcmVzc2lvbjo6bWF0Y2hlZExlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGQtPmxh
c3RNYXRjaExlbmd0aDsKLX0KLQotdm9pZCByZXBsYWNlKFN0cmluZyYgc3RyaW5nLCBjb25zdCBS
ZWd1bGFyRXhwcmVzc2lvbiYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KQotewot
ICAgIGludCBpbmRleCA9IDA7Ci0gICAgd2hpbGUgKGluZGV4IDwgc3RhdGljX2Nhc3Q8aW50Pihz
dHJpbmcubGVuZ3RoKCkpKSB7Ci0gICAgICAgIGludCBtYXRjaExlbmd0aDsKLSAgICAgICAgaW5k
ZXggPSB0YXJnZXQubWF0Y2goc3RyaW5nLCBpbmRleCwgJm1hdGNoTGVuZ3RoKTsKLSAgICAgICAg
aWYgKGluZGV4IDwgMCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBzdHJpbmcucmVwbGFj
ZShpbmRleCwgbWF0Y2hMZW5ndGgsIHJlcGxhY2VtZW50KTsKLSAgICAgICAgaW5kZXggKz0gcmVw
bGFjZW1lbnQubGVuZ3RoKCk7Ci0gICAgICAgIGlmICghbWF0Y2hMZW5ndGgpCi0gICAgICAgICAg
ICBicmVhazsgIC8vIEF2b2lkIGluZmluaXRlIGxvb3Agb24gMC1sZW5ndGggbWF0Y2hlcywgZS5n
LiBbYS16XSoKLSAgICB9Ci19Ci0KLWJvb2wgUmVndWxhckV4cHJlc3Npb246OmlzVmFsaWQoKSBj
b25zdAotewotICAgIHJldHVybiBkLT5tX3JlZ0V4cEJ5dGVDb2RlOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Jl
Z3VsYXJFeHByZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1JlZ3VsYXJF
eHByZXNzaW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNDVhNTEuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
Zm5kZWYgUmVndWxhckV4cHJlc3Npb25faAotI2RlZmluZSBSZWd1bGFyRXhwcmVzc2lvbl9oCi0K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1lbnVtIE11bHRpbGluZU1vZGUgewotICAgIE11bHRpbGluZURpc2FibGVkLAotICAgIE11bHRp
bGluZUVuYWJsZWQKLX07Ci0KLWNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uIHsKLSAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBSZWd1bGFyRXhwcmVzc2lvbihjb25zdCBT
dHJpbmcmLCBUZXh0Q2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxpbmVNb2RlID0gTXVsdGlsaW5lRGlz
YWJsZWQpOwotICAgIH5SZWd1bGFyRXhwcmVzc2lvbigpOwotCi0gICAgUmVndWxhckV4cHJlc3Np
b24oY29uc3QgUmVndWxhckV4cHJlc3Npb24mKTsKLSAgICBSZWd1bGFyRXhwcmVzc2lvbiYgb3Bl
cmF0b3I9KGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9uJik7Ci0KLSAgICBpbnQgbWF0Y2goY29uc3Qg
U3RyaW5nJiwgaW50IHN0YXJ0RnJvbSA9IDAsIGludCogbWF0Y2hMZW5ndGggPSAwKSBjb25zdDsK
LSAgICBpbnQgc2VhcmNoUmV2KGNvbnN0IFN0cmluZyYpIGNvbnN0OwotCi0gICAgaW50IG1hdGNo
ZWRMZW5ndGgoKSBjb25zdDsKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBjbGFzcyBQcml2YXRlOyAgICAKLSAgICBSZWZQdHI8UHJpdmF0ZT4gZDsKLX07Ci0KLXZv
aWQgcmVwbGFjZShTdHJpbmcmLCBjb25zdCBSZWd1bGFyRXhwcmVzc2lvbiYsIGNvbnN0IFN0cmlu
ZyYpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBSZWd1bGFyRXhwcmVz
c2lvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYmViNjlkOS4uNzM5
MGMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTYsNiArOTYsNyBA
QAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFk
LmgiCiAjaW5jbHVkZSA8Ynl0ZWNvZGUvQ29kZUJsb2NrLmg+CisjaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1
ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CkBAIC0xNDY0LDcgKzE0NjUsOCBAQCB2b2lkIEludGVybmFsczo6Y2xvc2VE
dW1teUluc3BlY3RvckZyb250ZW5kKCkKICAgICBBU1NFUlQocGFnZSk7CiAgICAgQVNTRVJUKG1f
ZnJvbnRlbmRXaW5kb3cpOwogCi0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nv
bm5lY3RGcm9udGVuZCgpOworICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIHBhZ2Ugd2UgYXJl
IGluc3BlY3RpbmcgaXMgY2xvc2luZy4KKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRh
cmdldERlc3Ryb3llZCk7CiAKICAgICBtX2Zyb250ZW5kQ2hhbm5lbC5yZWxlYXNlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXgg
ZDUwNGFkMi4uZWYzNjBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJXb3JrZXIuaCIK
ICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2Uu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00MjgsNyArNDI5LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y29ubmVjdFRvSW5z
cGVjdG9yKFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OlBhZ2VJbnNwZWMKIHN0YXRpYyB2b2lkIGRp
c2Nvbm5lY3RGcm9tV29ya2VyR2xvYmFsU2NvcGVJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGJvb2wpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oY29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICBzdGF0aWNfY2Fz
dDxXb3JrZXJHbG9iYWxTY29wZSo+KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
KCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2Nv
cGUqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ry
b3llZCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4
cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRz
LmRlZi5pbgppbmRleCBlMDZjYWNiLi5mYmUwNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRv
ci9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtMjM0LDcgKzIzNCw3IEBAIEVYUE9SVFMKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP3NldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVy
bmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaLCA/c2V0UmVzb3VyY2Vz
RGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBA
UUVBQVhISEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50QFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAQUJWMjNAMEBaLCA/cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50QFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAQUVCVjIzQDBAWikKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP3NldFByb2ZpbGVyRW5hYmxlZEBJbnNwZWN0b3JDb250cm9s
bGVyQFdlYkNvcmVAQFFBRVhfTkBaLCA/c2V0UHJvZmlsZXJFbmFibGVkQEluc3BlY3RvckNvbnRy
b2xsZXJAV2ViQ29yZUBAUUVBQVhfTkBaKQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/ZGlz
Y29ubmVjdEZyb250ZW5kQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFhaLCA/ZGlz
Y29ubmVjdEZyb250ZW5kQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUVBQVhYWikKKyAg
ICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2Rpc2Nvbm5lY3RGcm9udGVuZEBJbnNwZWN0b3JDb250
cm9sbGVyQFdlYkNvcmVAQFFBRVhXNEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb25ASW5zcGVjdG9y
QEBAWiwgP2Rpc2Nvbm5lY3RGcm9udGVuZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFB
RVhXNEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb25ASW5zcGVjdG9yQEBAWikKICNlbmRpZgogICAg
ICAgICBzeW1ib2xXaXRoUG9pbnRlcig/aXNBY3RpdmVJbnNlcnRpb25Qb2ludEBXZWJDb3JlQEBZ
QV9OUEJWTm9kZUAxQEBaLCA/aXNBY3RpdmVJbnNlcnRpb25Qb2ludEBXZWJDb3JlQEBZQV9OUEVC
Vk5vZGVAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lzUHJlbG9hZGVkQENhY2hl
ZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFosID9pc1ByZWxv
YWRlZEBDYWNoZWRSZXNvdXJjZUxvYWRlckBXZWJDb3JlQEBRRUJBX05BRUJWU3RyaW5nQFdURkBA
QFopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNDA3Zjk2Zi4uMjk1ZjY3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbi4KKwogMjAxNC0wMS0xOSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0sxXSBSZW1vdmUgYW5kIHJlZmFjdG9yIHRo
ZSBBUElzIHdoaWNoIHVzZSBzaW5nbGUgYW5kIGJhc2Uga2V5d29yZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5k
ZXggY2ExOGY5Ni4uYmNmMjhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJld2tfdmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjEzLDcgKzIxNCw3IEBAIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmw6OnNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQpCiB2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5SW5z
cGVjdG9yQ29udHJvbGxlcikKIHsKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikK
LSAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgICAgICBFV0tQcml2YXRlOjpj
b3JlUGFnZShtX2luc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVj
dEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9y
RGVzdHJveWVkKTsKIAogICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkKICAgICAgICAgbV9pbnNw
ZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBm
NTVlOGRiLi43ZmE1ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQt
MDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2Ny
aXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3cp
OgorICAgICAgICBJbmNsdWRlIEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24uCisKIDIwMTQtMDEt
MjIgIFRoaWFnbyBkZSBCYXJyb3MgTGFjZXJkYSAgPHRoaWFnby5sYWNlcmRhQG9wZW5ib3NzYS5v
cmc+CiAKICAgICAgICAgW0VGTF1bR1RLXSBHZXQgRUZMIGFuZCBHVEsgY29tcGlsaW5nIHdpdGgg
QUNDRVNTSUJJTElUWSBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXggY2RhZDhmNy4uY2Q5NDkz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAid2Via2l0d2Vi
aW5zcGVjdG9ycHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JB
Z2VudEJhc2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE4OSw3ICsxOTAsNyBAQCB2b2lkIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9y
Q29udHJvbAogICAgIH0KIAogICAgIGlmIChub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQotICAg
ICAgICBjb3JlKG1faW5zcGVjdGVkV2ViVmlldyktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNj
b25uZWN0RnJvbnRlbmQoKTsKKyAgICAgICAgY29yZShtX2luc3BlY3RlZFdlYlZpZXcpLT5pbnNw
ZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKIAogICAgIGlmIChtX2luc3Bl
Y3RvckNsaWVudCkKICAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBh
Z2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA3N2VhY2Y1Li43YjZlNDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxl
QWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVy
IGRlc3Ryb3lJbnNwZWN0b3JWaWV3Ol0pOgorICAgICAgICBJbmNsdWRlIEluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24uCisKIDIwMTQtMDEtMjIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBCdWlsZCBmaXggZm9yIGlPUyBjbGllbnRzIG9mIFdlYlVJRGVsZWdhdGVQ
cml2YXRlLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggMzJhNzI3MC4uYWY4OWQ5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bQpAQCAtNDQsNiArNDQsNyBAQAogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0
IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgorI2ltcG9ydCA8
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0
b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01haW5GcmFtZS5oPgpAQCAtNjkzLDcgKzY5NCw3IEBAIHZv
aWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmFwcGVuZChjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZFVSTCwgY29uc3QgU3RyaW5nCiAKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxl
cikgewogICAgICAgICBpZiAoUGFnZSogaW5zcGVjdGVkUGFnZSA9IFtfaW5zcGVjdGVkV2ViVmll
dy5nZXQoKSBwYWdlXSkKLSAgICAgICAgICAgIGluc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRy
b2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICAgICAgICAgIGluc3BlY3RlZFBhZ2Ut
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNw
ZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOwogICAgIH0KIAogICAg
IFJldGFpblB0cjxXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyPiBwcm90ZWN0KHNlbGYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IDk2ZTQ1OWEuLjlmMGE1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJ
bnNwZWN0b3JWaWV3KToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
LgorCiAyMDE0LTAxLTIxICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgog
CiAgICAgICAgIFtXaW5DYWlyb11bQ3VybF0gRG93bmxvYWQgcmVxdWVzdCBoYXMgaW5jb3JyZWN0
IHVzZXIgYWdlbnQgc3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggZjIyYjcwOS4uOGI4ZTZmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJPYmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlci5o
PgogCisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUg
PHdjaGFyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmg+CkBAIC00MzgsNyArNDM5LDcgQEAgdm9pZCBXZWJJbnNwZWN0
b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZpZXcoYm9vbCBub3RpZnlJbnNwZWN0
b3JDb250cm8KICAgICBjbG9zZVdpbmRvd1dpdGhvdXROb3RpZmljYXRpb25zKCk7CiAKICAgICBp
ZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikgewotICAgICAgICBtX2luc3BlY3RlZFdlYlZp
ZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOwor
ICAgICAgICBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246
Okluc3BlY3RvckRlc3Ryb3llZCk7CiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT51cGRhdGVI
aWdobGlnaHQoKTsKICAgICB9CiAgICAgOjpEZXN0cm95V2luZG93KG1fZnJvbnRlbmRId25kKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNjY3OWZjLi4wOWVjNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGlt
ZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50OjpjbG9zZVdpbmRvdyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6cmVtb3RlRnJvbnRl
bmREaXNjb25uZWN0ZWQpOgorICAgICAgICBJbmNsdWRlIEluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24uCisKIDIwMTQtMDEtMjIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIERlYnVnIG1lY2hhbmlzbSB0byBvdmVycmlkZSBwcm9jZXNzIFFvUyBv
biBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKaW5kZXgg
MDU4ZjBmZi4uYjNlNmU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckNv
bnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFz
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTU3LDcgKzU4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6YnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xv
c2VXaW5kb3coKQogewotICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAgICAgbV9wYWdlLT5pbnNwZWN0
b3IoKS0+ZGlkQ2xvc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCA0MzA1MjJiLi5jY2Y0NTVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+
CisjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGJp
bmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaD4KIApAQCAtMzI2LDcgKzMyNyw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpyZW1vdGVGcm9u
dGVuZENvbm5lY3RlZCgpCiB2b2lkIFdlYkluc3BlY3Rvcjo6cmVtb3RlRnJvbnRlbmREaXNjb25u
ZWN0ZWQoKQogewogICAgIEFTU0VSVChtX3JlbW90ZUZyb250ZW5kQ29ubmVjdGVkKTsKLSAgICBt
X3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoKTsKKyAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNj
b25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNw
ZWN0b3JEZXN0cm95ZWQpOwogICAgIG1fcmVtb3RlRnJvbnRlbmRDb25uZWN0ZWQgPSBmYWxzZTsK
IH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222038</attachid>
            <date>2014-01-23 16:06:23 -0800</date>
            <delta_ts>2014-01-23 16:06:23 -0800</delta_ts>
            <desc>[PATCH] For Bots 3</desc>
            <filename>for-bots-3.patch</filename>
            <type>text/plain</type>
            <size>124944</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzBmYjc0Li5lOGQyOTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTQtMDEt
MjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGltZXIgaW4gU2NyaXB0
RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IGluIHRlc3RzLiBCcmVha3Bv
aW50cyBhcmUgYWxyZWFkeQorICAgICAgICBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGVzdHMuIEFs
c28gc2luY2UgdGhlIERlYnVnZ2VyQWdlbnQuZW5hYmxlKCkgY2FsbAorICAgICAgICBub3cgaW1t
ZWRpYXRlbHkgcmVjb21waWxlcyBzY3JpcHRzLCBzb3VyY2VQYXJzZWQgZXZlbnRzIGFyZSBub3cg
c2VudCB0bworICAgICAgICB0aGUgZnJvbnRlbmQgZWFybGllciBldmVuIGJlZm9yZSB0aGUgc2V0
QnJlYWtwb2ludHNBY3RpdmUgbWVzc2FnZSBoYXMKKyAgICAgICAgYmVlbiBwcm9jZXNzZWQsIHNv
IHRoZSAiQnJlYWtwb2ludHMgRW5hYmxlZCIgb3V0cHV0IHdhcyBzaG93aW5nIHVwCisgICAgICAg
IGxhdGVyLCBzZWVtaW5nbHkgcmFuZG9tbHkgaW4gdGVzdHMsIGFuZCBpcyBubyBsb25nZXIgaGVs
cGZ1bC4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRp
dGlvbi1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRo
LWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1p
bnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1h
Y3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
dGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Nh
bGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxl
LXByb2Jlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQ
YXVzZU9uRXhjZXB0aW9ucy1hbGwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVt
b3ZlZC5odG1sOgorCiAyMDE0LTAxLTIyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVg6IFdlYktpdCBjb25jYXRlbmF0ZXMgbmFtZSBvZiBhbGwgdG9v
bGJhciBidXR0b25zIGluIHRoZSBhcHBsZS5jb20gdmlkZW8gcGxheWVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CmluZGV4IDY0NmUzOTAu
LmE3MzFiMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxl
IGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGlu
dWUgZXhlY3V0aW5nIGNvZGUuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9p
bnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMp
CiBDbG9zaW5nIHRoZSBpbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0
YWNoLmh0bWwKaW5kZXggOTUxMDIxMS4uYmFjOGY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi1kZXRhY2guaHRtbApAQCAtNTAsOSArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDU3ZDI5NjMuLmJkNDEwZjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwu
Y2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuCiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CmluZGV4IGRlNmM4NGMuLjNiOTQ3M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sCkBAIC00NywxMCArNDcsNiBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAg
fSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKaW5kZXggYmFlODc3Mi4uNzg4NmQ3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4g
YWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1
Z2dlci4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKIENsb3NpbmcgdGhl
IGluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRt
bAppbmRleCAzNTIwYjQ5Li42MTdlZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29u
ZGl0aW9uLWRldGFjaC5odG1sCkBAIC01MCwxMCArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB9CiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiB9CiA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDk1NWFhMDUuLjVi
MWUyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0
aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1
c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGNv
bmRpdGlvbnMuCiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGlu
c2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCiBQQVNTOiBU
aGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiB0aGUgZXhjZXB0aW9uIGluc2lkZSB0aGUg
Y29uZGl0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24uaHRtbAppbmRleCA4NzhkNjU0Li5jMWZjMjE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
d2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApAQCAtNDYs
MTAgKzQ2LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0Zv
ckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1l
dmFsLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDAxYjg0ZDguLmU3MDEyYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9i
cmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBA
QAogV2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxk
IGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCiAKLUJyZWFrcG9p
bnRzIEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIGluc2lkZSBicmVha3BvaW50QmFzaWMK
IFBBU1M6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIm90aGVyIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13
aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IGUyYmNlNTIuLjk2
YTMwMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9u
Lmh0bWwKQEAgLTU2LDEwICs1Niw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHth
Y3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBjYjVhZjVlLi5hMzM0ODQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRoZSBk
ZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1
dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCBicmVha3BvaW50LmpzCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjoo
MikgYStiOigzKQogRXhlY3V0aW5nIGNvbmRpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1h
bmQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy5odG1sCmluZGV4IDZjMWNj
NTkuLmEyZTU4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwKQEAgLTYwLDEwICs2MCw2IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCAxMGUyYWZjLi4wYTVmNmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
PHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcg
dGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUuaHRtbAppbmRleCA2ZDkxZjkwLi5mNjU2OWRhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCkBAIC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIC8vIGNhbGwgZnJhbWUgZnVuY3Rpb25OYW1lcyBhcmUgd2hhdCB3ZSBleHBlY3QuCiAK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhwZWN0
ZWQudHh0CmluZGV4IGY0MTJlNTAuLjBiOTRjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAotQnJlYWtwb2ludHMgRW5hYmxl
ZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9uCiBIaXQgQnJlYWtwb2ludCEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKaW5kZXggODhiOTJmYi4uZjA2ZTEzNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtdGhpcy1ob3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgLy8gY2FsbCBmcmFtZSB0aGlzIHZhbHVlcyBhcmUgd2hhdCB3ZSBl
eHBlY3QuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUi
LCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtw
b2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dAppbmRleCBjMWRiMDAzLi45MTRkMDA0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10
aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsNSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8
c2NyaXB0PgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCA8c2NyaXB0PgogUnVubmluZyB0
ZXN0RnVuY3Rpb24KIFBBU1M6IHN0ZXAgMDogdHlwZSAib2JqZWN0IiBjbGFzc05hbWUgIk51bWJl
ciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sCmluZGV4IGFjNTY0
NDQuLjUwNzg5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRt
bApAQCAtMTIsOSArMTIsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBjYWxsIGZyYW1lIHRo
aXMgdmFsdWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQi
KTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1zdHJpY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0CmluZGV4IGE5NjgzZjQu
LjdjN2IyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6
Y29sdW1uIGluIDxzY3JpcHQ+CiAKLUJyZWFrcG9pbnRzIEVuYWJsZWQKIEZvdW5kIDxzY3JpcHQ+
CiBSdW5uaW5nIHRlc3RGdW5jdGlvbgogUEFTUzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZhbHVl
ICIyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0Lmh0bWwKaW5kZXggMjhiOGMwZi4u
YTVlZjhjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sCkBAIC0xMiw5
ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGNhbGwgZnJhbWUgdGhpcyB2YWx1ZXMg
YXJlIHdoYXQgd2UgZXhwZWN0LgogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0p
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUt
cHJvYmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3
MTM3MDUuLmQ4YjViYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogRGVidWdnZXIu
c2V0QnJlYWtwb2ludCB3aXRoIG11bHRpcGxlIHByb2JlIGFjdGlvbnMgYXQgdGhlIHNhbWUgYnJl
YWtwb2ludC4gVGVzdCBEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSBldmVudHMgZm9yIHRoZSBwcm9i
ZSBzYW1wbGVzLgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBQ
QVNTOiBTaG91bGQgcmVjZWl2ZSB0d28gYnJlYWtwb2ludCBhY3Rpb24gaWRlbnRpZmllcnMgb24g
RGVidWdnZXIuc2V0QnJlYWtwb2ludCBjYWxsYmFjay4KIFJ1bm5pbmcgYnJlYWtwb2ludEFjdGlv
bnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmluZGV4IGNmMGUzZjUuLjE2ODA2YWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9i
ZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKQEAgLTgsOSAr
OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIu
Li8uLi8uLi8uLi9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb2JlLWhlbHBlci5qcyIp
OwogCiAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOwotICAgIH0pOwogCiAgICAgdmFyIHNhbXBs
ZXMgPSBbXTsKICAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0gMjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9y
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
bmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY3OTAzNTkuLjYyYzJkZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQt
aW5zcGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYg
QEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjogUEFTUzogRXhwZWN0ZWQgZXhjZXB0
aW9uCiBDaGVja2luZyB0aGF0IHRoZSBpbnNwZWN0b3IgY29kZSBjYW4gYmUgZGVidWdnZWQgdXNp
bmcgYSBzZWNvbmQgaW5zcGVjdG9yIHdpbmRvdy4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwKIFBBU1M6IFBhdXNlZCEKIFBBU1M6IFJl
c3VtZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCmluZGV4IGI2YmI3M2QuLmY0NWMwMjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCkBAIC05LDE1ICs5LDEyIEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJ1bnMgaW4gdGhlIHNlY29uZCBpbnNw
ZWN0b3Igd2luZG93LiBXZSBjYW4gdXNlIHRoaXMgb25lIHRvIGRlYnVnIHRoZSBmaXJzdCBpbnNw
ZWN0b3IuCiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5h
YmxlIiwge30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNl
cHRpb25zIC0gYWxsIik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7CiAKLSAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGFuIGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAi
c2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdQQVNTOiBFeHBlY3RlZCBl
eGNlcHRpb24nKSB9LCAwKTsifSk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIFRy
aWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4KKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignUEFTUzogRXhwZWN0ZWQg
ZXhjZXB0aW9uJykgfSwgMCk7In0pOwogICAgICAgICB9KTsKIAogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDFmYWI0
M2QuLmQ5MDYwNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw1IEBACiBEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50CiAKLUJyZWFrcG9pbnRz
IEVuYWJsZWQKIEZvdW5kIGJyZWFrcG9pbnQuanMKIFNldCBCcmVha3BvaW50LCBUcmlnZ2VyaW5n
IGl0CiBpbnNpZGUgYnJlYWtwb2ludEJhc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbAppbmRl
eCBlNDIwMGE5Li4yNTU2MTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKQEAgLTYsOSAr
Niw2IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0g
ICAgfSk7CiAKICAgICB2YXIgYnJlYWtwb2ludFRyaWdnZXJlZCA9IDA7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFj
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODIxYzYyZC4uODI0
MjFhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTYsNyArNiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlvbgog
Q09OU09MRSBNRVNTQUdFOiBsb2ctYWN0aW9uLWFmdGVyCiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50
IG9wdGlvbnMuYWN0aW9ucwogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50
LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5v
dCB0cmlnZ2VyCiBpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMSkgYjoodW5kZWZpbmVkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCmluZGV4IDExYjY5YWEuLmI0NmFmM2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwKQEAgLTEwLDkgKzEwLDYgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xl
LmVuYWJsZSIsIHt9KTsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7CiAgICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxl
cyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS1leHBlY3RlZC50eHQKaW5kZXggOGM2MjIwZi4uNmM2YTRkNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRp
bnVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NSBAQAogRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51ZQogCi1CcmVh
a3BvaW50cyBFbmFibGVkCiBGb3VuZCBicmVha3BvaW50LmpzCiBSdW5uaW5nIGJyZWFrcG9pbnRB
dXRvbWF0aWNhbGx5Q29udGludWUgbXVsdGlwbGUgdGltZXMgd2l0aCBhdXRvbWF0aWNhbGx5IGNv
bnRpbnVlCiBpbnNpZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
YXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCA2NGI4MzQ1Li5kNDRhYzNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNiw5
ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsK
LSAgICB9KTsKIAogICAgIHZhciBhbGxvd2VkVG9IaXRCcmVha3BvaW50ID0gZmFsc2U7CiAgICAg
dmFyIGJyZWFrcG9pbnRJZGVudGlmaWVyID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0CmluZGV4IGE3YjJkYWQuLjQ4NTQ1NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbHVtbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUg
QEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KIAot
QnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgPHNjcmlwdD4KIFJ1bm5pbmcgdGVzdEZ1bmN0aW9u
CiBIaXQgQnJlYWtwb2ludCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKaW5kZXgg
NzNlYTk0Yi4uODdmYWNkNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBA
IC0xMiw5ICsxMiw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIGJ5IHJ1bm5pbmcgc29tZSBl
eHByZXNzaW9ucyBhdCB0aGF0IGNhbGwgZnJhbWUuCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVk
Iik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWNvbmRpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDlkNzc3
ZDAuLmE1MmU2YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0
aW9ucy5jb25kaXRpb24KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5q
cwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBsZSB0aW1lcwogaW5zaWRl
IGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bmRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKaW5kZXggMTkwMzU4Ny4uZTc2NGU0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29uZGl0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKQEAgLTYsOSArNiw2IEBACiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAg
ICB2YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAgICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IDllYTQ5OTcuLjk0
M2RiYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1
IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MCBpbiA8c2NyaXB0IHNyYz0iLi4u
Ij4KIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUEFTUzogUmVj
ZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludCBhdCBz
cGVjaWZpZWQgbG9jYXRpb24gYWxyZWFkeSBleGlzdHMuCiBSdW5uaW5nIGJyZWFrcG9pbnRCYXNp
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRp
b24tZXhwZWN0ZWQudHh0CmluZGV4IDZkZWJjN2IuLmE5OTdmNDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAndGhpcy53aWxsLmNhdXNlJykKIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25k
aXRpb24gb3Igb3B0aW9ucy5hY3Rpb24gd2l0aCBleGNlcHRpb24KIAotQnJlYWtwb2ludHMgRW5h
YmxlZAogRm91bmQgYnJlYWtwb2ludC5qcwogUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlv
biB0byB0cmlnZ2VyIGNvbmRpdGlvbiBleGNlcHRpb24uCiBpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwKaW5kZXggNWM5M2M0MS4uYjE1YmRhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCkBAIC05
LDkgKzksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkNvbnNvbGUuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAg
ICB9KTsKIAogICAgIHZhciBsb2dzU2VlbiA9IDA7CiAgICAgY29uc3QgZXhwZWN0ZWRMb2dzID0g
MjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sCmluZGV4IDkwZjAzNWEuLjdlNzY4YmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQuaHRtbApAQCAtNiw5ICs2LDYgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3Rp
dmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnRzIEVuYWJsZWQiKTsKLSAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwt
ZXhwZWN0ZWQudHh0CmluZGV4IGM1MGRkNzIuLjkwYzExNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNl
VVJMLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw1IEBACiBEZWJ1Z2dlci5zZXRCcmVha3BvaW50QnlVcmwgaW4gU2NyaXB0IG5hbWVkIHZpYSBz
b3VyY2VVUkwKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRm91bmQgc291cmNlVVJMLXRlc3QuanMK
IFJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24KIEhpdCBCcmVha3BvaW50IQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVy
bC1zb3VyY2VVUkwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKaW5kZXggMTAxYzJkOC4uMWE3MTZi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBA
IC05LDkgKzksNiBAQCBldmFsKCJmdW5jdGlvbiBzb3VyY2VVUkxGdW5jdGlvbigpIHtcbiAgICB2
YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBjCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3Rp
dmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgfSk7CiAKICAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKaW5kZXggYTk5YTBkNy4uNjlmN2FiZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFs
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDYg
QEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIGFsbAogCi1CcmVha3BvaW50cyBFbmFibGVkCiBEZWJ1Z2dlci5zZXRQYXVzZU9u
RXhjZXB0aW9ucyAtIGFsbAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBz
dGF0ZW1lbnRzCiBQYXVzZWQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0
bWwKaW5kZXggMzE3MWRmYi4uYmVmMzM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0
aW9ucy1hbGwuaHRtbApAQCAtMTAyLDE1ICsxMDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIAog
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2
ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgZnVu
Y3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKLSAgICAgICAgICAgIGV2YWx1
YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3RQ
YXVzZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHJpZ2dlck5leHQoKTsKLSAgICAgICAgICAg
IH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFs
bCIpOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7CisgICAgICAgICAgICB0cmlnZ2VyTmV4dCgpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNl
cHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CmluZGV4IDU3MThkY2QuLmNkZDQ0M2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1ub25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKQEAg
LTEyLDcgKzEyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKIERlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIG5vbmUKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBub25lCiBQQVNTOiBObyBwYXVzZXMKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLmh0bWwKaW5kZXggYmE4NzBmMy4uNmM2MDcw
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCkBAIC02LDMy
ICs2LDI5IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyAtIG5vbmUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IDEr
MTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgbm9F
eGNlcHRpb24oKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChl
KSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9
IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNo
TmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0
VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7
In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQo
ZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyB9LCAw
KTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3Rl
ZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHt9LmEuYi5jLmQ7IH0sIDAp
OyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkJh
c2ljKCk7IH0sIDApOyJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJl
c3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1N0cmluZygpOyB9LCAwKTsifSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1BhcmFtKHt4OjF9
KTsgfSwgMCk7In0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhy
b3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9LCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
fSwgMTApOwotICAgICAgICAgICAgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9u
KHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihy
ZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgMSsxOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IG5vRXhjZXB0aW9uKCk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0Y2ggKGUpIHsg
Y29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShlKSk7IH0gfSwg
MCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChl
eGNlcHRpb25CYXNpYywgMSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7In0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Np
b246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RG
dW5jdGlvbiwgMyk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgY2F0Y2hOZXN0ZWQodGhyb3dTdHJpbmcsIDEwKTsgfSwgMCk7In0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJy
b3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsge30uYS5iLmMuZDsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25CYXNpYygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lv
bjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0s
IDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dTdHJpbmco
KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1Bh
cmFtKHt4OjF9KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0sIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0sIDEwKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDZhMTZiNjcuLjg4OWJmMjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4
cGVjdGVkLnR4dApAQCAtMTksNyArMTksNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNh
dGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gc3RyaW5nIgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjE4
LCJjb2x1bW4iOjEyLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQogRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMgdW5jYXVnaHQKIAotQnJlYWtwb2ludHMgRW5hYmxlZAogRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodAogUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24g
bm9uLWV4Y2VwdGlvbiBzdGF0ZW1lbnRzIG9yIGNhdWdodCBleGNlcHRpb24gc3RhdGVtZW50cwog
UGF1c2VkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRt
bAppbmRleCBiYmI3YzMzLi4yNWU0MDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbApAQCAtNzksMTUgKzc5LDEyIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAKICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7
fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAidW5j
YXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSB1bmNhdWdodCIpOwot
ICAgICAgICAgICAgZXZhbHVhdGVFeHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0cmlnZ2VyTmV4
dFVuY2F1Z2h0RXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogInVu
Y2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIHVuY2F1Z2h0Iik7CisgICAgICAg
IGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVj
dFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24o
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4
cGVjdGVkLnR4dAppbmRleCBlY2VjNTBiLi43MDlhYjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2Rl
LXJlbW92ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogVGVzdGluZyB0aGF0IERPTS5j
aGlsZE5vZGVSZW1vdmVkIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQgZXZlbiB3aGVuIHRoZSBlbGVt
ZW50IGlzIG1vdmVkIHdoaWxlIHBhdXNlZCBpbiB0aGUgZGVidWdnZXIgb24gYSBET01EZWJ1Z2dl
ciAibm9kZS1yZW1vdmVkIiBicmVha3BvaW50LgogCi1CcmVha3BvaW50cyBFbmFibGVkCiBGb3Vu
ZCA8c2NyaXB0PgogU3RvcHBlZCBvbiBET00gYnJlYWtwb2ludAogUEFTUzogb25DaGlsZE5vZGVS
ZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRt
bAppbmRleCAyNTA0ZTQ1Li5iNjYxNmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwKQEAg
LTExOCwxMyArMTE4LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRET01CcmVha3BvaW50Iiwge25vZGVJZDogdGFy
Z2V0RWxlbWVudElkLCB0eXBlOiAibm9kZS1yZW1vdmVkIn0pOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiBmaW5hbENv
bnRhaW5lcklkfSk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7ICAgICAgICAKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhw
cmVzc2lvbiI6ICJyZW1vdmVOb2RlKCkifSk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0s
IGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludHMgRW5h
YmxlZCIpOwotICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBkZjMwMTRmLi4yYjViODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1
bmN0aW9ucyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNl
Lmg6CisgICAgICAgIFdoZW4gZGlzY29ubmVjdGluZyBhZ2VudHMsIHByb3ZpZGUgYSBJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIGZvcgorICAgICAgICB0aGUgZGlzY29ubmVjdGlvbi4gSXQgY291
bGQgYmUgdGhhdCBhbiBpbnNwZWN0b3IgZnJvbnRlbmQgaXMganVzdAorICAgICAgICBkaXNjb25u
ZWN0aW5nIG9yIHRoYXQgdGhlIGluc3BlY3RlZCBvYmplY3QgaXMgZ29pbmcgYXdheSBlbnRpcmVs
eQorICAgICAgICBhbmQgd2UgY2FuIGF2b2lkIGRvaW5nIHNvbWUgd29yay4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6On5KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUpOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3RJbnRlcm5hbCk6CisgICAgICAgIFBhc3Mg
ZGlmZmVyZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdHMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQWdlbnQuaDoKKyAgICAgICAgUGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIGFyb3Vu
ZCB3aGVyZSBuZWVkZWQuCisKIDIwMTQtMDEtMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTIHdoaXRlc3BhY2UgZGVmaW5pdGlvbiBmb3Ig
Y2hhbmdlcyBpbiBVbmljb2RlIDYuMwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmgKaW5kZXggMjBhZDcxZi4uZjZiNmM1NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
QmFzZS5oCkBAIC0zNCwxMiArMzQsMTcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bDsKIAorZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHsKKyAgICBJbnNwZWN0
ZWRUYXJnZXREZXN0cm95ZWQsCisgICAgSW5zcGVjdG9yRGVzdHJveWVkCit9OworCiBjbGFzcyBJ
bnNwZWN0b3JBZ2VudEJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50
QmFzZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciop
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nh
cmRBZ2VudCgpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAppbmRleCAyMDNj
OGY2Li5lMGQ5ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCB2
b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZQogICAgICAgICBtX2FnZW50c1tpXS0+ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKGZyb250ZW5kQ2hhbm5lbCwgYmFja2VuZERpc3BhdGNoZXIpOwogfQog
Ci12b2lkIEluc3BlY3RvckFnZW50UmVnaXN0cnk6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yQWdlbnRSZWdpc3RyeTo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX2FnZW50cy5zaXplKCk7IGkrKykKLSAgICAgICAgbV9hZ2VudHNb
aV0tPndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCk7CisgICAgICAgIG1fYWdlbnRzW2ld
LT53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQogCiB2b2lkIEluc3Bl
Y3RvckFnZW50UmVnaXN0cnk6OmRpc2NhcmRBZ2VudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAppbmRleCAy
ZTg5MDM5Li4xN2Q2NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEluc3BlY3RvckFnZW50QmFzZTsKIGNsYXNzIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwor
ZW51bSBjbGFzcyBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOwogCiBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5IHsKIHB1YmxpYzoKQEAgLTQyLDcgKzQzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2Vu
dEJhc2U+KTsKIAogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpOworICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOwogICAg
IHZvaWQgZGlzY2FyZEFnZW50cygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDc0NjJhYWQuLmQ3YjQ2ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTY4LDEyICs2OCwxMiBAQCB2b2lkIEpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbAogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChmcm9udGVuZENoYW5uZWwsIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwog
fQogCi12b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKCkKK3ZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25u
ZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYg
KCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9h
Z2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKTsKKyAgICBtX2FnZW50cy53aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9pbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1faW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCmlu
ZGV4IGZmNDFiNTkuLmM0ZmJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICB2b2lk
IGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbik7CiAg
ICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCA2OWJhNWViLi5mY2VlNDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGZy
b250CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rvckluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIElu
c3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3Bl
Y3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA5NDNlZjE2Li5j
N2RjOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkluc3BlY3RvckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVi
dWdnYWJsZS5jcHAKaW5kZXggYzkzM2FhNi4uMmI4OTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAKICNpbmNs
dWRlICJBUElTaGltcy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFnZW50QmFzZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yLmgiCkBAIC00NSw3ICs0Niw3IEBAIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZTo6SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlKEpTR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6On5KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUoKQogewogICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAg
ICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgZGlzY29ubmVjdEludGVybmFsKEluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZCk7CiB9CiAKIFN0cmluZyBK
U0dsb2JhbE9iamVjdERlYnVnZ2FibGU6Om5hbWUoKSBjb25zdApAQCAtNjUsOSArNjYsMTQgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiBmcm9udGVuZENoYW5uZWwKIAogdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6
OmRpc2Nvbm5lY3QoKQogeworICAgIGRpc2Nvbm5lY3RJbnRlcm5hbChJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOworfQorCit2b2lkIEpTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZTo6ZGlzY29ubmVjdEludGVybmFsKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24g
cmVhc29uKQorewogICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oJm1fZ2xvYmFsT2JqZWN0LnZt
KCkpOwogCi0gICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsK
KyAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcm9udGVuZChyZWFzb24pOwog
ICAgIG1faW5zcGVjdG9yQ29udHJvbGxlciA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgK
aW5kZXggYWFmZjE5OS4uY2YzZWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTMyLDYgKzMyLDEw
IEBACiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZS5oIgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogCituYW1lc3BhY2UgSW5zcGVjdG9yIHsKK2VudW0gY2xhc3MgSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbjsKK30KKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwpAQCAtNTIsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IG92ZXJyaWRlOwogCiBwcml2YXRlOgorICAgIHZvaWQgZGlzY29ubmVjdEludGVybmFsKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiByZWFzb24pOworCiAgICAgSlNHbG9iYWxP
YmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcj4gbV9pbnNwZWN0b3JDb250cm9sbGVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBkZWFiY2UxLi5mYzIwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQxIEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
IHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6
OlNjcmlwdERlYnVnU2VydmVyKToKKyAgICAgICAgUmVtb3ZlIG1fcmVjb21waWxlVGltZXIgYW5k
IHRoZSByZWNvbXBpbGUgc29vbiBmdW5jdGlvbi4KKyAgICAgICAgV2UgY2FuIGp1c3QgcmVjb21w
aWxlIGltbWVkaWF0ZWx5IGluIGFsbCBleGlzdGluZyBjYXNlcy4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1
Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERl
YnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZEFkZEZpcnN0TGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMYXN0TGlzdGVuZXIpOgorICAg
ICAgICBBZGQgYSAiZGlkQWRkRmlyc3RMaXN0ZW5lciIgdG8gbWF0Y2ggImRpZFJlbW92ZUxhc3RM
aXN0ZW5lciIuCisgICAgICAgIE9ubHkgcmVjb21waWxlIGZ1bmN0aW9ucyB3aGVuIHdlIGF0dGFj
aCB0aGUgZGVidWdnZXIgYW5kIHdoZW4KKyAgICAgICAgd2UgZGV0YWNoIHRoZSBsYXN0IGxpc3Rl
bmVyLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21w
aWxlQWxsSlNGdW5jdGlvbnMpOgorICAgICAgICBTYW1lIHRoaW5nLiBBbHNvIHJlYXJyYW5nZSB0
aGUgZnVuY3Rpb25zIHRvIHJlYWQgYmV0dGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICBVc2UgdGhlIGRpcmVjdCByZWNvbXBpbGUg
ZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVtb3ZlZCAic29vbiIgdmVyc2lvbi4KKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBVcGRhdGUgZGlzY29ubmVjdEZyb250ZW5kIHN5
bWJvbC4KKworICAgICAgICAqIHBhZ2UvUGFnZURlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y2xvc2VEdW1teUluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc2Nvbm5lY3RGcm9tV29ya2VyR2xvYmFsU2NvcGVJbnNw
ZWN0b3JUYXNrKToKKyAgICAgICAgSW5jbHVkZSBhbiBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
IHdoZW4gY2FsbGluZyBkaXNjb25uZWN0RnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICBJZiB0aGUgZGlzY29ubmVj
dCByZWFzb24gaXMgdGhlIHBhZ2Ugd2lsbCBiZSBkZXN0cm95ZWQsIGRvbid0IHJlY29tcGlsZSB3
aGVuIGRpc2Nvbm5lY3RpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgSWYgdGhlIGRpc2Nvbm5lY3QgcmVhc29uIGlzIHRoZSBwYWdl
IHdpbGwgYmUgZGVzdHJveWVkLCBkb24ndCByZWNvbXBpbGUgd2hlbiBkaXNjb25uZWN0aW5nLgor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9zZSk6CisgICAgICAgIFBhc3MgZGlmZmVy
ZW50IHJlYXNvbnMgZm9yIHRoZSBkaWZmZXJlbnQgZGlzY29ubmVjdCByZWFzb25zLgorCisgICAg
ICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0
RnJvbnRlbmQpOgorICAgICAgICBQYXNzIGRpZmZlcmVudCByZWFzb25zIGZvciB0aGUgZGlmZmVy
ZW50IGRpc2Nvbm5lY3QgcmVhc29ucy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52
YXNBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
YXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
cklucHV0QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXll
clRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1v
cnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJEZWJ1Z2dlckFnZW50Ojpz
dG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50Lmg6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbiBwYXJhbS4K
KwogMjAxNC0wMS0yMiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFYOiBEbyBub3QgcmV0dXJuIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgYW4gb2JqZWN0
IGp1c3QgYmVjYXVzZSBpdCBoYXMgdGFiaW5kZXg9MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4
ODRmZDJmLi5kMzI5ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjc2Myw3ICsyNzYzLDcg
QEAgX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjVzZWxlY3RDb2xvckluQ29sb3JDaG9v
c2VyRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQzMWRvRGlzcGF0
Y2hNZXNzYWdlT25Gcm9udGVuZFBhZ2VFUE5TXzRQYWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlMTdJbnNwZWN0b3JDb3VudGVyczEyY291bnRlclZhbHVlRU5TMF8xMUNvdW50ZXJUeXBl
RQogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTVjb25uZWN0RnJvbnRlbmRFUE45
SW5zcGVjdG9yMjRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWxFCi1fX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIxOGRpc2Nvbm5lY3RGcm9udGVuZEV2CitfX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIxOGRpc2Nvbm5lY3RGcm9udGVuZEVOOUluc3BlY3RvcjI1SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbkUKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4c2V0
UHJvZmlsZXJFbmFibGVkRWIKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI1ZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZEVsUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOUlu
c3BlY3RvckNvbnRyb2xsZXIyNnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50RU5TdDNfXzExMHVu
aXF1ZV9wdHJJTlNfMjNJbnNwZWN0b3JGcm9udGVuZENsaWVudEVOUzFfMTRkZWZhdWx0X2RlbGV0
ZUlTM19FRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlw
dERlYnVnU2VydmVyLmNwcAppbmRleCAxY2VjN2IzLi44NDA2NzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTk0
LDEzICs5NCwxNSBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIoU2Ny
aXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBhZwogICAgIE93blB0cjxMaXN0ZW5l
clNldD4mIGxpc3RlbmVycyA9IG1fcGFnZUxpc3RlbmVyc01hcC5hZGQocGFnZSwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwogICAgIGlmICghbGlzdGVuZXJzKQogICAgICAgICBsaXN0ZW5lcnMg
PSBhZG9wdFB0cihuZXcgTGlzdGVuZXJTZXQpOworCisgICAgYm9vbCB3YXNFbXB0eSA9IGxpc3Rl
bmVycy0+aXNFbXB0eSgpOwogICAgIGxpc3RlbmVycy0+YWRkKGxpc3RlbmVyKTsKIAotICAgIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOwotICAgIHBhZ2UtPnNldERlYnVnZ2VyKHRoaXMp
OworICAgIGlmICh3YXNFbXB0eSkKKyAgICAgICAgZGlkQWRkRmlyc3RMaXN0ZW5lcihwYWdlKTsK
IH0KIAotdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERl
YnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdlKiBwYWdlKQordm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBQYWdl
KiBwYWdlLCBib29sIHNraXBSZWNvbXBpbGUpCiB7CiAgICAgQVNTRVJUX0FSRyhsaXN0ZW5lciwg
bGlzdGVuZXIpOwogICAgIEFTU0VSVF9BUkcocGFnZSwgcGFnZSk7CkBAIC0xMTEsMjAgKzExMywx
NyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVi
dWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqCiAKICAgICBMaXN0ZW5lclNldCogbGlzdGVuZXJz
ID0gaXQtPnZhbHVlLmdldCgpOwogICAgIGxpc3RlbmVycy0+cmVtb3ZlKGxpc3RlbmVyKTsKKwog
ICAgIGlmIChsaXN0ZW5lcnMtPmlzRW1wdHkoKSkgewogICAgICAgICBtX3BhZ2VMaXN0ZW5lcnNN
YXAucmVtb3ZlKGl0KTsKLSAgICAgICAgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKHBhZ2UpOworICAg
ICAgICBkaWRSZW1vdmVMYXN0TGlzdGVuZXIocGFnZSwgc2tpcFJlY29tcGlsZSk7CiAgICAgfQog
fQogCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMo
KQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAg
ICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5vdCBlbXB0eSBwb3N0cG9uZSByZWNvbXBpbGF0
aW9uLgotICAgIGlmIChKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+ZW50cnlTY29wZSkKLSAgICAg
ICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAgICBEZWJ1
Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwor
ICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhKU0RPTVdpbmRvdzo6Y29tbW9u
Vk0oKSk7CiB9CiAKIFNjcmlwdERlYnVnU2VydmVyOjpMaXN0ZW5lclNldCogUGFnZVNjcmlwdERl
YnVnU2VydmVyOjpnZXRMaXN0ZW5lcnNGb3JHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKQEAgLTE2MSwxNSArMTYwLDI1IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
ICAgIHNldEphdmFTY3JpcHRQYXVzZWQocGFnZS0+Z3JvdXAoKSwgZmFsc2UpOwogfQogCi12b2lk
IFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2Up
Cit2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkQWRkRmlyc3RMaXN0ZW5lcihQYWdlKiBw
YWdlKQoreworICAgIC8vIFNldCBkZWJ1Z2dlciBiZWZvcmUgcmVjb21waWxpbmcgdG8gZ2V0IHNv
dXJjZVBhcnNlZCBjYWxsYmFja3MuCisgICAgcGFnZS0+c2V0RGVidWdnZXIodGhpcyk7CisgICAg
cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKK30KKwordm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2
ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKiBwYWdlLCBib29sIHNraXBSZWNvbXBpbGUp
CiB7CiAgICAgQVNTRVJUKHBhZ2UpOwogCiAgICAgaWYgKG1fcGF1c2VkUGFnZSA9PSBwYWdlKQog
ICAgICAgICBtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgPSB0cnVlOwogCi0gICAgcmVj
b21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgcGFnZS0+c2V0RGVidWdnZXIoMCk7Cisg
ICAgLy8gQ2xlYXIgZGVidWdnZXIgYmVmb3JlIHJlY29tcGlsaW5nIGJlY2F1c2Ugd2UgZG8gbm90
IG5lZWQgc291cmNlUGFyc2VkIGNhbGxiYWNrcy4KKyAgICBwYWdlLT5zZXREZWJ1Z2dlcihudWxs
cHRyKTsKKworICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlQWxsSlNG
dW5jdGlvbnMoKTsKIH0KIAogdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9v
cFdoaWxlUGF1c2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggZWQ3ZjI0ZS4uNTY3ZWQ5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIHNoYXJl
ZCgpOwogCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiwgUGFnZSop
OwotICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIFBhZ2UqKTsK
KyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBQYWdlKiwgYm9v
bCBza2lwUmVjb21waWxlKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0
aW9ucygpIG92ZXJyaWRlOwogCkBAIC02NSw3ICs2NSw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKIAotICAgIHZvaWQgZGlkUmVtb3Zl
TGFzdExpc3RlbmVyKFBhZ2UqKTsKKyAgICB2b2lkIGRpZEFkZEZpcnN0TGlzdGVuZXIoUGFnZSop
OworICAgIHZvaWQgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqLCBib29sIHNraXBSZWNvbXBp
bGUpOwogCiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UGF1c2VkKGNvbnN0IFBhZ2VHcm91cCYsIGJv
b2wgcGF1c2VkKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRQYXVzZWQoUGFnZSosIGJvb2wgcGF1
c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVn
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVy
LmNwcAppbmRleCBkYWM1MmEyLi40MDNkZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiSmF2YVNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5j
bHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1Nj
cmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuaD4KICNp
bmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXIuaD4KQEAgLTU3LDcgKzU4LDYgQEAgU2NyaXB0
RGVidWdTZXJ2ZXI6OlNjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNJbldvcmtlclRocmVhZCkKICAg
ICA6IERlYnVnZ2VyKGlzSW5Xb3JrZXJUaHJlYWQpCiAgICAgLCBtX2RvbmVQcm9jZXNzaW5nRGVi
dWdnZXJFdmVudHModHJ1ZSkKICAgICAsIG1fY2FsbGluZ0xpc3RlbmVycyhmYWxzZSkKLSAgICAs
IG1fcmVjb21waWxlVGltZXIodGhpcywgJlNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9uc1RpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTMxMywxNiArMzEzLDYgQEAgdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6aGFuZGxlUGF1c2UoRGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBK
U0dsb2JhbE9iamVjdCogdm0KICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoJlNjcmlw
dERlYnVnU2VydmVyOjpkaXNwYXRjaERpZENvbnRpbnVlLCB2bUVudHJ5R2xvYmFsT2JqZWN0KTsK
IH0KIAotdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29u
KCkKLXsKLSAgICBtX3JlY29tcGlsZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnNUaW1lckZpcmVkKFRpbWVy
PFNjcmlwdERlYnVnU2VydmVyPiYpCi17Ci0gICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsK
LX0KLQogY29uc3QgVmVjdG9yPFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24+JiBTY3JpcHREZWJ1Z1Nl
cnZlcjo6Z2V0QWN0aW9uc0ZvckJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50SUQgYnJlYWtwb2lu
dElEKQogewogICAgIEFTU0VSVChicmVha3BvaW50SUQgIT0gSlNDOjpub0JyZWFrcG9pbnRJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRl
eCBmYTBlZTVkLi45MzU0MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmgKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlNjcmlwdEJy
ZWFrcG9pbnQuaCIKICNpbmNsdWRlICJTY3JpcHREZWJ1Z0xpc3RlbmVyLmgiCi0jaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRPYmplY3QuaD4KICNpbmNsdWRlIDxk
ZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01OSw3ICs1
OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50
SUQpOwogICAgIHZvaWQgY2xlYXJCcmVha3BvaW50cygpOwogCi0gICAgdm9pZCByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9uc1Nvb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5j
dGlvbnMoKSA9IDA7CiAKICAgICBjb25zdCBWZWN0b3I8U2NyaXB0QnJlYWtwb2ludEFjdGlvbj4m
IGdldEFjdGlvbnNGb3JCcmVha3BvaW50KEpTQzo6QnJlYWtwb2ludElEKTsKQEAgLTEwOSwxMiAr
MTA3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlUGF1c2UoSlNDOjpEZWJ1
Z2dlcjo6UmVhc29uRm9yUGF1c2UsIEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cygp
IG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1RpbWVy
RmlyZWQoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+Jik7Ci0KICAgICB1bnNpZ25lZCBtX2hpdENv
dW50OwogICAgIGJvb2wgbV9jYWxsaW5nTGlzdGVuZXJzOwogICAgIEJyZWFrcG9pbnRJRFRvQWN0
aW9uc01hcCBtX2JyZWFrcG9pbnRJRFRvQWN0aW9uczsKLSAgICBUaW1lcjxTY3JpcHREZWJ1Z1Nl
cnZlcj4gbV9yZWNvbXBpbGVUaW1lcjsKIAogICAgIGZyaWVuZCBjbGFzcyBEZWJ1Z2dlckNhbGxG
cmFtZVNjb3BlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBiZWM5ZTU3Li42OTUxYmZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCkBAIC01NSwxMCArNTUsMjcgQEAgdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6
YWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiAgICAgaWYgKCFsaXN0
ZW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkK
LSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmF0dGFjaERlYnVnZ2VyKHRo
aXMpOworICAgIGJvb2wgd2FzRW1wdHkgPSBtX2xpc3RlbmVycy5pc0VtcHR5KCk7CiAgICAgbV9s
aXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTsKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwor
CisgICAgaWYgKHdhc0VtcHR5KSB7CisgICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUtPnNjcmlw
dCgpLT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoKTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxp
c3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyLCBib29sIHNraXBSZWNvbXBpbGUp
Cit7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5l
cnMucmVtb3ZlKGxpc3RlbmVyKTsKKworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERlYnVnZ2VyKHRo
aXMpOworICAgICAgICBpZiAoIXNraXBSZWNvbXBpbGUpCisgICAgICAgICAgICByZWNvbXBpbGVB
bGxKU0Z1bmN0aW9ucygpOworICAgIH0KIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQpAQCAtNjYsMjEgKzgzLDcgQEAgdm9pZCBXb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQogICAgIEpTQzo6
Vk0qIHZtID0gbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPnZtKCk7CiAKICAgICBKU0M6
OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLSAgICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5v
dCBlbXB0eSBwb3N0cG9uZSByZWNvbXBpbGF0aW9uLgotICAgIGlmICh2bS0+ZW50cnlTY29wZSkK
LSAgICAgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7Ci0gICAgZWxzZQotICAgICAg
ICBKU0M6OkRlYnVnZ2VyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyh2bSk7Ci19Ci0KLXZvaWQg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVu
ZXIqIGxpc3RlbmVyKQotewotICAgIGlmICghbGlzdGVuZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7Ci0gICAgaWYgKG1fbGlzdGVuZXJzLmlz
RW1wdHkoKSkKLSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZS0+c2NyaXB0KCktPmRldGFjaERl
YnVnZ2VyKHRoaXMpOworICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
KHZtKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hp
bGVQYXVzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggYmY2MTZhYS4uNzYyZDIxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC00
NSwyMCArNDUsMTcgQEAgcHVibGljOgogICAgIFdvcmtlclNjcmlwdERlYnVnU2VydmVyKFdvcmtl
ckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJik7CiAgICAgfldvcmtlclNjcmlwdERlYnVnU2Vy
dmVyKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOwot
ICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOworICAgIHZvaWQg
cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIGJvb2wgc2tpcFJlY29tcGlsZSk7
CiAKICAgICB2b2lkIGludGVycnVwdEFuZFJ1blRhc2soUGFzc093blB0cjxTY3JpcHREZWJ1Z1Nl
cnZlcjo6VGFzaz4pOwogCi0gICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92ZXJy
aWRlOwotCiBwcml2YXRlOgogICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVyc0Zv
ckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgeyByZXR1cm4gJm1f
bGlzdGVuZXJzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKSBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQotCi0gICAgdmlydHVhbCBib29sIGlzQ29udGVudFNj
cmlwdChKU0M6OkV4ZWNTdGF0ZSopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAgICB2
aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBvdmVycmlkZTsKIAogICAgIFdv
cmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNw
cAppbmRleCA2YzM0YmIyLi4yYTdhNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNTcs
NyArNTcsNyBAQCB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcAogICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShi
YWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5o
CmluZGV4IDRiODYyYWEuLjUyZDhlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsK
ICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGMwODQ5OTAuLjAxYTUyZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNTE1
LDcgKzUxNSw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kCiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckNTU0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3Bh
dGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4
IGRjYmE5MWEuLjEwYjRmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZm9yY2VQ
c2V1ZG9TdGF0ZShFbGVtZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRpc2NhcmRBZ2VudCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggYjMwNmZhYS4uOTUyNThlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250CiAgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvckNhbnZhc0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERp
c3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oCmluZGV4IDNiYzdiMTEuLmE5YTM4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1Ymxp
YzoKICAgICB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGZyYW1l
TmF2aWdhdGVkKEZyYW1lKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmlu
ZGV4IGEyNDMyNWEuLjcwMWFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckZyb24KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yQ29uc29s
ZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQog
Ci12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA1
Zjk4YzM2Li42MjNiY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c2V0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlND
OjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElELCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBhNmViNTEwLi5lYzY0YzJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xOTcs
NyArMTk3LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xsZXIoKQog
CiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQogewot
ICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQpOwogICAgIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjb25uZWN0KCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQt
Pmluc3BlY3RvckRlc3Ryb3llZCgpOwogICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gbnVsbHB0cjsK
QEAgLTI2NiwxMiArMjY2LDEyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFuCiAjZW5kaWYKIH0K
IAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQordm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoKTsKKyAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFz
b24pOwogCiAgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgp
OwogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKQEAgLTMwOCw3ICsz
MDgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKCkKIHsKICAgICBpZiAoIW1f
aW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKQogICAgICAgICByZXR1cm47Ci0gICAgZGlzY29ubmVj
dEZyb250ZW5kKCk7CisgICAgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RS
ZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmNsb3Nl
SW5zcGVjdG9yRnJvbnRlbmQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggODllOTc4MC4uNDA1ZTY5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC05OSw3ICs5OSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbW90ZUZyb250ZW5kKCkgY29uc3Q7CiAKICAgICB2
b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCop
OwotICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJv
bnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKTsKICAgICB2b2lkIHNl
dFByb2Nlc3NJZChsb25nKTsKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNzJiZjg1
NS4uZjI0Y2FhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmQKICAg
ICAgICAgZm9jdXNOb2RlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAg
bV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgK
aW5kZXggYWIyOTk5MC4uMTM0NWJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFN0cmluZyB0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAg
ICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKICAgICB2b2lkIHJlc2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAKaW5kZXggN2Y5MjFhMy4uOTdiMjkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtMTEyLDcgKzEx
Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlz
cGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKQogewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXgg
YTU4ZjQ4ZC4uYzMyMzc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGJvb2wgaXNET01FdmVudCwgY29uc3Qg
U3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmluZGV4
IDlmNTI5YWIuLjI1YzZmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRPTVN0
b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgKaW5kZXggYzYyYWE3MS4uNWFkMmI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApAQCAtNTgsNyArNTgsNyBA
QCBwdWJsaWM6CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAg
IC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDMxYTYxZDguLjI4NjFlZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5j
cHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckRhdGFiYXNl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggNmZiNzEwOC4uMzIyOTYwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5o
CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDZlOTBi
MzQuLjA0OWJjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk1LDEyICs5NSwxMiBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiAgICAgbV9lbmFibGVkID0gdHJ1ZTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpCiB7CiAgICAgbV9qYXZhU2NyaXB0
QnJlYWtwb2ludHMuY2xlYXIoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBzdG9wTGlzdGVuaW5nU2NyaXB0RGVi
dWdTZXJ2ZXIoKTsKKyAgICBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoaXNCZWluZ0Rl
c3Ryb3llZCk7CiAgICAgY2xlYXJSZXNvbHZlZEJyZWFrcG9pbnRTdGF0ZSgpOwogCiAgICAgaWYg
KG1fbGlzdGVuZXIpCkBAIC0xMjQsNyArMTI0LDggQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IGZhbHNl
OworICAgIGRpc2FibGUoc2tpcFJlY29tcGlsZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyKiBiYWNrZW5kRGlzcGF0Y2hlcikKQEAgLTEzMywxMiArMTM0LDEzIEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckRlYnVnZ2Vy
QmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OwogCi0gICAgZGlzYWJsZSgpOworICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJ
bnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CisgICAg
ZGlzYWJsZShza2lwUmVjb21waWxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgYWN0aXZlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXgg
Zjk5YWEzOC4uYWRiNzc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1BhdXNl
ZCgpOwogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSk7CkBAIC0xMjgsMTQgKzEyOCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlw
dE1hbmFnZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVn
U2VydmVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdT
ZXJ2ZXIoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1Nl
cnZlcihib29sIGlzQmVpbmdEZXN0cm95ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNv
bnNvbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAgICAg
SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcigp
IGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAgICAgdmlydHVhbCBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmlu
ZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZW5hYmxlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQ
YXVzZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBjYWxs
RnJhbWVzLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZENsZWFyR2xvYmFsT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcAppbmRleCA1NDgzMGJjLi43Nzc1MzNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVj
dG8KICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQmFja2Vu
ZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmgKaW5kZXggOTgwNGZlNC4uYzk0ODIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKQEAgLTY3LDcgKzY3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwg
aW50IHVpZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9y
OjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRp
c2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHRha2VIZWFwU25h
cHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVk
REJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwCmluZGV4IGRiNDUxZmQuLmFmM2M1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTc0LDcgKzU3
NCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IEluc3BlY3RvckluZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3Bh
dGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAppbmRleCBhZTYxOTg4Li5k
MDcxYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVu
ZC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKaW5kZXgg
YzRiODc4OS4uYzQ1YTA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvcklucHV0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEluc3BlY3RvcklucHV0
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZQogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JJbnB1dEJhY2tlbmREaXNw
YXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3Bl
Y3RvcklucHV0QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5z
cGVjdG9ySW5wdXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRl
eCA4OGViOTMzLi5mMTUyYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5wdXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0
b3JJbnB1dEFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUg
ZnJvbnRlbmQgZm9yIHNpbXVsYXRpbmcgaW5wdXQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
S2V5RXZlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9k
aWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25z
dCBTdHJpbmcqIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNv
bnN0IGludCogd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBjb25zdCBpbnQqIG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBj
b25zdCBib29sKiBpc0tleXBhZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKaW5kZXggYzBmYzI2MC4uMDg2ZTNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3Bl
Y3RvckxheWVyVHJlZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpCit2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXll
clRyZWVBZ2VudC5oCmluZGV4IDcyMWIzMTAuLjc1NjFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC01Myw3ICs1Myw3
IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGI3
NGMzNTMuLjE2NGQ5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3Rvck1lbW9y
eUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udAogICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JNZW1vcnlCYWNrZW5kRGlz
cGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJ
bnNwZWN0b3JNZW1vcnlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5o
CmluZGV4IGM1YzEwYWYuLjEyZjNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBnZXRET01Db3VudGVycyhFcnJvclN0cmluZyosIGludCogZG9jdW1lbnRzLCBpbnQqIG5vZGVz
LCBpbnQqIGpzRXZlbnRMaXN0ZW5lcnMpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGU0N2ZmZGQuLjBlZDBlMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW4KICAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gSW5zcGVjdG9yUGFnZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFj
a2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaAppbmRleCA3NzQxNTNhLi44M2QxMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgog
CiAgICAgLy8gSW5zcGVjdG9yIENvbnRyb2xsZXIgQVBJCiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENyb3NzLWFn
ZW50cyBBUEkKICAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXgg
MWYyNWEzZS4uNjRlYzY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVTY3JpcHQoKSBvdmVycmlkZQogICAgIHsK
LSAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1
bmN0aW9uc1Nvb24oKTsKKyAgICAgICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5y
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFByb2ZpbGluZyhjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZQpAQCAtMjAyLDIzICsyMDIs
MjIgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JT
dHJpbmcqLCBib29sKiByZXN1bHQpCiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBpZiAoZW5hYmxlZCgpKQotICAgICAgICByZXR1cm47
CiAgICAgZW5hYmxlKGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpk
aXNhYmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBkaXNhYmxlKCk7CisgICAgZGlzYWJsZShmYWxz
ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlzYWJsZSgpCit2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRpc2FibGUoYm9vbCBza2lwUmVjb21waWxlKQogewogICAg
IGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7
CiAgICAgbV9wcm9maWxlSGVhZGVyc1JlcXVlc3RlZCA9IGZhbHNlOwotICAgIHJlY29tcGlsZVNj
cmlwdCgpOworICAgIGlmICghc2tpcFJlY29tcGlsZSkKKyAgICAgICAgcmVjb21waWxlU2NyaXB0
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJl
Y29tcGlsZSkKQEAgLTMzMywxNCArMzMyLDE1IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvCiAg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvclByb2ZpbGVyQmFja2VuZERpc3BhdGNo
ZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKQordm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogCiAgICAgc3RvcCgp
OwotICAgIEVycm9yU3RyaW5nIGVycm9yOwotICAgIGRpc2FibGUoJmVycm9yKTsKKworICAgIGJv
b2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJ
bnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CisgICAgZGlzYWJsZShza2lwUmVjb21waWxlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydChFcnJvclN0cmluZyopCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRl
eCAyYTJiN2ZiLi5kMzc5MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzdGFydChFcnJvclN0cmluZyogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyogPSBudWxscHRyKSBvdmVycmlkZTsKIAotICAg
IHZvaWQgZGlzYWJsZSgpOworICAgIHZvaWQgZGlzYWJsZShib29sIHNraXBSZWNvbXBpbGUpOwog
ICAgIHZvaWQgZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgYm9vbCBlbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgU3RyaW5nIGdldEN1cnJlbnRVc2VySW5p
dGlhdGVkUHJvZmlsZU5hbWUoYm9vbCBpbmNyZW1lbnRQcm9maWxlTnVtYmVyID0gZmFsc2UpOwpA
QCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGludCB1aWQpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Oklu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29u
c3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgdG9nZ2xlUmVjb3Jk
QnV0dG9uKGJvb2wgaXNQcm9maWxpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDMyNDRkN2UuLjc4M2QwMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm8KICAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggYzk1MGI3MS4uZDJjYTJhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVk
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggZTRhNGQ1Ny4uZjhhNmMzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZybwogICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JUaW1lbGluZUJhY2tlbmREaXNwYXRjaGVyOjpj
cmVhdGUoYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlz
Y29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggMmY0ZjdkZS4uNGM1ZWQyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEVycm9yU3RyaW5nKiwgY29u
c3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCwgY29uc3QgYm9vbCogaW5jbHVkZURvbUNvdW50ZXJz
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyopIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAKaW5kZXggMGZiZGJkZC4uYjgxMDhiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnQKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5zcGVjdG9yV29y
a2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9zaG91bGRQYXVzZURl
ZGljYXRlZFdvcmtlck9uU3RhcnQgPSBmYWxzZTsKICAgICBkaXNhYmxlKG51bGxwdHIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCAz
YTk1MTQ0Li43NTNjOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yV29ya2VyQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3Rv
cldvcmtlckFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgYm9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCmluZGV4IDBjMDE4YmUuLjVhNzM1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtNjUsOSArNjUsOSBAQCB2b2lkIFBhZ2VEZWJ1
Z2dlckFnZW50OjplbmFibGUoKQogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGFnZURl
YnVnZ2VyQWdlbnQodGhpcyk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUo
KQordm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiB7Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSgpOworICAgIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoaXNCZWluZ0Rlc3Ryb3llZCk7CiAgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRQYWdlRGVidWdnZXJBZ2VudChudWxscHRyKTsKIH0KIApAQCAtNzYs
OSArNzYsOSBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdGFydExpc3RlbmluZ1NjcmlwdERl
YnVnU2VydmVyKCkKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLmFkZExpc3RlbmVyKHRoaXMsIG1f
cGFnZUFnZW50LT5wYWdlKCkpOwogfQogCi12b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpzdG9wTGlz
dGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQordm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6c3RvcExp
c3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIHsKLSAgICBz
Y3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRoaXMsIG1fcGFnZUFnZW50LT5wYWdl
KCkpOworICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9wYWdl
QWdlbnQtPnBhZ2UoKSwgaXNCZWluZ0Rlc3Ryb3llZCk7CiB9CiAKIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggMGE1NzlhYy4uNGRkMTcz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAg
LTU0LDExICs1NCwxMSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVn
U2VydmVyKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHRE
ZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2Ny
aXB0RGVidWdTZXJ2ZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGQzZjZmNTYuLjAzNDI2NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZEMKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gSW5z
cGVjdG9yUnVudGltZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERpc3BhdGNoZXIs
IHRoaXMpOwogfQogCi12b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKCkKK3ZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKaW5kZXggZjBjYmE0NC4u
ZTYyYzMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50
KCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3Bw
CmluZGV4IDU1OGY5Y2EuLjhmMzM3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEyMiw5ICsxMjIsOSBAQCB2b2lkIFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OnN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKQogICAgIHNj
cmlwdERlYnVnU2VydmVyKCkuYWRkTGlzdGVuZXIodGhpcyk7CiB9CiAKLXZvaWQgV29ya2VyRGVi
dWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkKK3ZvaWQgV29ya2Vy
RGVidWdnZXJBZ2VudDo6c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWlu
Z0Rlc3Ryb3llZCkKIHsKLSAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnJlbW92ZUxpc3RlbmVyKHRo
aXMpOworICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgaXNCZWlu
Z0Rlc3Ryb3llZCk7CiB9CiAKIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBXb3JrZXJEZWJ1Z2dl
ckFnZW50OjpzY3JpcHREZWJ1Z1NlcnZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuaAppbmRleCBlYWRkNzQyLi44YTAzMmIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFuZERpc3BhdGNoSW5zcGVj
dG9yQ29tbWFuZHMoV29ya2VyVGhyZWFkKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMaXN0
ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9w
TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdT
ZXJ2ZXIoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IGNkNjk4NTQuLmZkMDcyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTExNiw3ICsxMTYsNyBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbAogV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6fldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKQogewogICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+cmVzZXQoKTsKLSAgICBkaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICBk
aXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFy
Z2V0RGVzdHJveWVkKTsKIH0KIAogdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQoKQpAQCAtMTI3LDExICsxMjcsMTIgQEAgdm9pZCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSwgbV9iYWNrZW5kRGlzcGF0Y2hl
ci5nZXQoKSk7CiB9CiAKLXZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKCkKK3ZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIGlmICghbV9m
cm9udGVuZENoYW5uZWwpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2FnZW50cy53aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpOworCisgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250
ZW5kKCk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwogICAgIG1fZnJvbnRlbmRD
aGFubmVsID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGZlNmZkYTcuLjdiMjQzZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgfldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoKTsKIAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0
RnJvbnRlbmQoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250
ZW5kKGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAg
IHZvaWQgcmVzdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDliNjQwZDcuLjZjNDAxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JGcm9udGVuCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3Rv
clJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmREaXNwYXRjaGVyLCB0aGlz
KTsKIH0KIAotdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKCkKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaAppbmRleCBlOTAyMmIyLi4wM2VhZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBQcm90
b2NvbCBjb21tYW5kcy4KICAgICB2aXJ0dWFsIHZvaWQgcnVuKEVycm9yU3RyaW5nKikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCmluZGV4IGMxZjI2NTIuLjA2
N2RmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRm9yd2FyZGluZy5oIgogI2luY2x1ZGUgIk1haW5G
cmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnRCYXNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKQEAgLTg0LDcgKzg1
LDcgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKIHZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3Qo
KQogewogICAgIEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIgPSBtX3Bh
Z2UuaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGluc3BlY3RvckNvbnRyb2xsZXIuZGlzY29u
bmVjdEZyb250ZW5kKCk7CisgICAgaW5zcGVjdG9yQ29udHJvbGxlci5kaXNjb25uZWN0RnJvbnRl
bmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKICAgICBp
bnNwZWN0b3JDb250cm9sbGVyLnNldEhhc1JlbW90ZUZyb250ZW5kKGZhbHNlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJlYjY5ZDkuLjczOTBjMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRl
ICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1
ZGUgPGJ5dGVjb2RlL0NvZGVCbG9jay5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JB
Z2VudEJhc2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtMTQ2NCw3ICsxNDY1LDggQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0
b3JGcm9udGVuZCgpCiAgICAgQVNTRVJUKHBhZ2UpOwogICAgIEFTU0VSVChtX2Zyb250ZW5kV2lu
ZG93KTsKIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoKTsKKyAgICAvLyBUcmVhdCB0aGlzIGFzIGlmIHRoZSBwYWdlIHdlIGFyZSBpbnNwZWN0aW5n
IGlzIGNsb3NpbmcuCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95
ZWQpOwogCiAgICAgbV9mcm9udGVuZENoYW5uZWwucmVsZWFzZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IGQ1MDRhZDIuLmVm
MzYwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAi
V29ya2VyRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDI4LDcgKzQy
OSw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OmNvbm5lY3RUb0luc3BlY3RvcihXb3Jr
ZXJHbG9iYWxTY29wZVByb3h5OjpQYWdlSW5zcGVjCiBzdGF0aWMgdm9pZCBkaXNjb25uZWN0RnJv
bVdvcmtlckdsb2JhbFNjb3BlSW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBib29sKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNv
bnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7Ci0gICAgc3RhdGljX2Nhc3Q8V29ya2VyR2xv
YmFsU2NvcGUqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworICAgIHN0YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlKj4oY29udGV4
dCktPndvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVj
dG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5k
ZXggZTA2Y2FjYi4uZmJlMDRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4
cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhw
b3J0cy5kZWYuaW4KQEAgLTIzNCw3ICsyMzQsNyBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9zZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNASW5zcGVj
dG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYSEhAWiwgP3NldFJlc291cmNlc0RhdGFTaXplTGlt
aXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFFQUFYSEhAWikK
ICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3BhdGhCeUFwcGVuZGluZ0NvbXBvbmVudEBXZWJD
b3JlQEBZQT9BVlN0cmluZ0BXVEZAQEFCVjIzQDBAWiwgP3BhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dEBXZWJDb3JlQEBZQT9BVlN0cmluZ0BXVEZAQEFFQlYyM0AwQFopCiAgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9zZXRQcm9maWxlckVuYWJsZWRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3Jl
QEBRQUVYX05AWiwgP3NldFByb2ZpbGVyRW5hYmxlZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNv
cmVAQFFFQUFYX05AWikKLSAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2Rpc2Nvbm5lY3RGcm9u
dGVuZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWiwgP2Rpc2Nvbm5lY3RGcm9u
dGVuZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFFQUFYWFopCisgICAgICAgIHN5bWJv
bFdpdGhQb2ludGVyKD9kaXNjb25uZWN0RnJvbnRlbmRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJD
b3JlQEBRQUVYVzRJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uQEluc3BlY3RvckBAQFosID9kaXNj
b25uZWN0RnJvbnRlbmRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYVzRJbnNwZWN0
b3JEaXNjb25uZWN0UmVhc29uQEluc3BlY3RvckBAQFopCiAjZW5kaWYKICAgICAgICAgc3ltYm9s
V2l0aFBvaW50ZXIoP2lzQWN0aXZlSW5zZXJ0aW9uUG9pbnRAV2ViQ29yZUBAWUFfTlBCVk5vZGVA
MUBAWiwgP2lzQWN0aXZlSW5zZXJ0aW9uUG9pbnRAV2ViQ29yZUBAWUFfTlBFQlZOb2RlQDFAQFop
CiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9pc1ByZWxvYWRlZEBDYWNoZWRSZXNvdXJjZUxv
YWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BXVEZAQEBaLCA/aXNQcmVsb2FkZWRAQ2FjaGVk
UmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUVCQV9OQUVCVlN0cmluZ0BXVEZAQEBaKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IDQwN2Y5NmYuLjI5NWY2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxNC0wMS0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1bmN0aW9u
cyB0aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRlc3Ry
b3lJbnNwZWN0b3JXaW5kb3cpOgorICAgICAgICBJbmNsdWRlIEluc3BlY3RvckRpc2Nvbm5lY3RS
ZWFzb24uCisKIDIwMTQtMDEtMTkgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFtFRkxdW1dLMV0gUmVtb3ZlIGFuZCByZWZhY3RvciB0aGUgQVBJcyB3aGlj
aCB1c2Ugc2luZ2xlIGFuZCBiYXNlIGtleXdvcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IGNhMThmOTYu
LmJjZjI4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIk1h
aW5GcmFtZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXdfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTIxMyw3ICsyMTQsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpzZXRUb29sYmFySGVpZ2h0KHVuc2lnbmVkKQogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRy
b2xsZXIpCiB7CiAgICAgaWYgKG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIEVX
S1ByaXZhdGU6OmNvcmVQYWdlKG1faW5zcGVjdGVkVmlldyktPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9p
bnNwZWN0ZWRWaWV3KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7
CiAKICAgICBpZiAobV9pbnNwZWN0b3JDbGllbnQpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50
LT5yZWxlYXNlRnJvbnRlbmRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZjU1ZThkYi4uN2Zh
NTg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2Vy
dmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0
MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToKKyAgICAgICAg
SW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0LTAxLTIyICBUaGlhZ28g
ZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFtFRkxdW0dUS10gR2V0IEVGTCBhbmQgR1RLIGNvbXBpbGluZyB3aXRoIEFDQ0VTU0lCSUxJ
VFkgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4IGNkYWQ4ZjcuLmNkOTQ5MzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
R3RrLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3RvcnBy
aXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vi
dmlld3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC0xODksNyArMTkwLDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2wKICAg
ICB9CiAKICAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgY29yZSht
X2luc3BlY3RlZFdlYlZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250
ZW5kKCk7CisgICAgICAgIGNvcmUobV9pbnNwZWN0ZWRXZWJWaWV3KS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RS
ZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAKICAgICBpZiAobV9pbnNwZWN0b3JDbGllbnQp
CiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRlbmRQYWdlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggNzdlYWNmNS4uN2I2ZTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE0LTAxLTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zIHRpbWVyIGluIFNjcmlwdERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBkZXN0cm95SW5z
cGVjdG9yVmlldzpdKToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29u
LgorCiAyMDE0LTAxLTIyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQnVpbGQgZml4IGZvciBpT1MgY2xpZW50cyBvZiBXZWJVSURlbGVnYXRlUHJpdmF0ZS5oLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Lm1tCmluZGV4IDMyYTcyNzAuLmFmODlkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8YWxnb3JpdGht
PgogI2ltcG9ydCA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KKyNpbXBvcnQgPGluc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJvbGxl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KQEAgLTY5Myw3ICs2OTQsNyBAQCB2b2lkIFdlYkluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50OjphcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNv
bnN0IFN0cmluZwogCiAgICAgaWYgKG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpIHsKICAgICAg
ICAgaWYgKFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBbX2luc3BlY3RlZFdlYlZpZXcuZ2V0KCkgcGFn
ZV0pCi0gICAgICAgICAgICBpbnNwZWN0ZWRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlz
Y29ubmVjdEZyb250ZW5kKCk7CisgICAgICAgICAgICBpbnNwZWN0ZWRQYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29u
bmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKICAgICB9CiAKICAgICBSZXRhaW5QdHI8
V2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlcj4gcHJvdGVjdChzZWxmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwppbmRleCA5NmU0NTlhLi45ZjBhNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDEtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMgdGlt
ZXIgaW4gU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yVmll
dyk6CisgICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4KKwogMjAxNC0w
MS0yMSAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBb
V2luQ2Fpcm9dW0N1cmxdIERvd25sb2FkIHJlcXVlc3QgaGFzIGluY29ycmVjdCB1c2VyIGFnZW50
IHN0cmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IGYyMmI3MDkuLjhiOGU2ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyT2JqZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KIAorI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDx3Y2hhci5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZS5oPgpAQCAtNDM4LDcgKzQzOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JWaWV3KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvCiAg
ICAgY2xvc2VXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucygpOwogCiAgICAgaWYgKG5vdGlmeUlu
c3BlY3RvckNvbnRyb2xsZXIpIHsKLSAgICAgICAgbV9pbnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCkt
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICAgICAgbV9p
bnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0
RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0b3JE
ZXN0cm95ZWQpOwogICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+dXBkYXRlSGlnaGxpZ2h0KCk7
CiAgICAgfQogICAgIDo6RGVzdHJveVdpbmRvdyhtX2Zyb250ZW5kSHduZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMDY2NzlmYy4uMDllYzUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAx
LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVtb3ZlIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zIHRpbWVyIGluIFNjcmlw
dERlYnVnU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xv
c2VXaW5kb3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OnJlbW90ZUZyb250ZW5kRGlzY29ubmVj
dGVkKToKKyAgICAgICAgSW5jbHVkZSBJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uLgorCiAyMDE0
LTAxLTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEZWJ1ZyBtZWNoYW5pc20gdG8gb3ZlcnJpZGUgcHJvY2VzcyBRb1Mgb24gTWFjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwCmluZGV4IDA1OGYwZmYuLmIz
ZTZlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZS5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBA
IC01Nyw3ICs1OCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmJyaW5nVG9G
cm9udCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNsb3NlV2luZG93KCkK
IHsKLSAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25u
ZWN0RnJvbnRlbmQoKTsKKyAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVh
c29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOwogICAgIG1fcGFnZS0+aW5zcGVjdG9yKCktPmRpZENs
b3NlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5jcHAKaW5kZXggNDMwNTIyYi4uY2NmNDU1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgorI2luY2x1ZGUg
PGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDxiaW5kaW5ncy9TY3Jp
cHRWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKQEAg
LTMyNiw3ICszMjcsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6cmVtb3RlRnJvbnRlbmRDb25uZWN0
ZWQoKQogdm9pZCBXZWJJbnNwZWN0b3I6OnJlbW90ZUZyb250ZW5kRGlzY29ubmVjdGVkKCkKIHsK
ICAgICBBU1NFUlQobV9yZW1vdGVGcm9udGVuZENvbm5lY3RlZCk7Ci0gICAgbV9wYWdlLT5jb3Jl
UGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAg
bV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250
ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJv
eWVkKTsKICAgICBtX3JlbW90ZUZyb250ZW5kQ29ubmVjdGVkID0gZmFsc2U7CiB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>